1

最初に xml 構造を示します。

<config>

   <engine>
     <eid>1</eid>
     <somechild>text</somechild>
     <somemodechild>
       <subchild>subchbild</subchild>
     <somemorechild>
   </engine>
     <eid>1</eid>
     <somechild>text</somechild>
     <somemodechild>
       <subchild>subchbild</subchild>
     <somemorechild>
   </engine>
   <engine>
     <eid>1</eid>
     <somechild>text</somechild>
     <somemodechild>
       <subchild>subchbild</subchild>
     <somemorechild>
   </engine>
   </engine>
     <eid>1</eid>
     <somechild>text</somechild>
     <somemodechild>
       <subchild>subchbild</subchild>
     <somemorechild>
   </engine>
   <engine>
     <eid>1</eid>
     <somechild>text</somechild>
     <somemodechild>
       <subchild>subchbild</subchild>
     <somemorechild>
   </engine>

</config>

これ<config>がルート要素です。xml 要素を編集するための GUI を作成する必要があります。私はJSPを使用してそれを行い<engine>、同じページでそれぞれのGUIを作成し、各ユーザーが特定のものを編集し<engine>て要素を保存できる<config>ようにし、その特定のタグへの変更を保存するために、<engine>eidを使用して分離しています特定<engine>の。

<engine>ここで、編集中の特定のものを別のxmlファイルに書き直したいと思います。jdomを使用してそれを達成するにはどうすればよいですか?

4

1 に答える 1

0

要件を正しく理解しているかどうかわかりません: 上記の xml ファイル (ファイル A) と、1 つのエンジン ノードのみを含む別の xml ファイル (ファイル B) があります。

ファイル A に一意の ID (eid?) がある場合は、それを DOM に解析し、eid がファイル B の eid と一致するノードを置き換えます。

ファイル B の eid に一致するファイル A のエンジンを見つけるには、XPath を使用できます。

Node aEID = xp.evaluate("/config/engine[eid='3']"); 
Node bEID = docB.getRoot();

次に、最初のDOMからaEIDを削除します

docA.remove(aEID);

そしてbEIDを追加

docA.getRoot().add(bEID);

(上記のコードはコンパイルするためのものではありません)

于 2011-06-14T08:09:10.547 に答える