簡體   English   中英

java jdom xml復制xml的一部分

[英]java jdom xml copy a section of xml

讓我首先向您展示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>是根元素。 我必須創建一個GUI來編輯xml元素。 我使用JSP完成了此工作,並在同一頁面中為每個<engine>制作了一個GUI,每個用戶都可以編輯特定的<engine> ,然后保存<config>元素,並保存對該元素的更改特別<engine>標簽我使用EID偏析的特定<engine>

現在,我想在單獨的xml文件中重寫正在編輯的特定<engine> 如何使用jdom實現它?

不知道我是否正確理解了您的要求:您上面有一個xml文件(文件A),上面還有一個僅包含一個引擎節點的xml文件(文件B)。

如果文件A中有唯一的ID(eid?),則將其解析為DOM,然后替換eid與文件B中的eid相匹配的節點。

要在文件A中找到與文件B中的eid相匹配的引擎,可以使用XPath。

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

那么您將從您的第一個DOM中刪除一個EID

docA.remove(aEID);

並添加bEID

docA.getRoot().add(bEID);

(以上代碼無意編譯)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM