Как добавить узел в XML перед любым perticular узлом в Java - PullRequest
1 голос
/ 01 апреля 2012

Мой существующий XML-файл выглядит как

<transaction>
  <id>
    <in>computer</in>
    <sn>1234567</sn>
    <book>JAVA</book>
    <author>klen</author>
  </id>
  <data>
    <dateTime>2011-06-24T17:08:36.3727674+05:30</dateTime>
    <key>Err</key>
  </data>
</transaction>

, но я хочу добавить узел перед <id> узлом. Теперь у меня есть 2 вопроса 1. Используя dom perser, как добавить узел раньше?2. Можно ли сделать это иначе, чем dom-парсер? Потому что я даю демо-версию xml, оригинальный xml большой, поэтому мне нужен хороший парсер для лучшей производительности.

Я хочу добавить это

       <xs:schema id="transaction" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">  
    <xs:element name="transaction" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">  
      <xs:complexType>  
        <xs:choice minOccurs="0" maxOccurs="unbounded">  
          <xs:element name="id">  
            <xs:complexType>  
              <xs:sequence>  
                <xs:element name="in" type="xs:string" minOccurs="0" />  
                <xs:element name="sn" type="xs:string" minOccurs="0" />  
                <xs:element name="book" type="xs:string" minOccurs="0" />  
                <xs:element name="author" type="xs:string" minOccurs="0" />  
               </xs:sequence>  
            </xs:complexType>  
          </xs:element>  
          <xs:element name="data">  
            <xs:complexType>  
              <xs:sequence>  
                <xs:element name="dateTime" type="xs:dateTime" minOccurs="0" />  
                <xs:element name="key" type="xs:string" minOccurs="0" />  
              </xs:sequence>  
            </xs:complexType>  
          </xs:element>  
          <xs:element name="productData">  
            <xs:complexType>  
              <xs:sequence>  
                <xs:element name="dateTime" type="xs:dateTime" minOccurs="0" />  
                <xs:element name="key" type="xs:string" minOccurs="0" />  
              </xs:sequence>  
            </xs:complexType>  
          </xs:element>  
        </xs:choice>  
      </xs:complexType>  
    </xs:element>  
  </xs:schema> 

до <id> узла под <transaction> узла.

1 Ответ

3 голосов
/ 01 апреля 2012

Вопрос 1: «Используя dom perser, как добавить узел раньше?»

Ответ 1: Я предполагаю, что вы используете org.w3c.dom . Пусть node1 будет узлом в вашем документе. Пусть node2 будет другим узлом в вашем документе. Вы хотите вставить узел1 перед узлом2 .

Вопрос 2: «Возможно ли сделать это иначе, чем dom parser?»

Ответ 2: DOM не является современным в отношении XML. Вы должны изучить XSLT, SAX и / или JAXB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...