[英]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.