删除 dom4j 中的元素
<root>
<elm id="1"/>
<elm id="2"/>
<elm id="3"/>
<elm id="4"/>
</root>
我想在 dom 中留下 id="2",
domj4如何删除其他三个?
结果:
<root>
<elm id="2"/>
</root>
<root>
<elm id="1"/>
<elm id="2"/>
<elm id="3"/>
<elm id="4"/>
</root>
I want to leave id="2" in the dom,
how can domj4 to remove the other three ?
result:
<root>
<elm id="2"/>
</root>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
到目前为止你做了什么?好吧,我会从头开始。
尝试使用
DocumentHelper.parseText(xmlStr) 获取
Document
然后使用
Document.getRootElement() 获取文档的根元素
获取根元素后,可以使用Element.getElements()或其变体循环遍历所有子元素,并使用Element.getAttributes()检查每个元素的属性 或其变体。
确定所有三个元素后,这三个元素不是必需的。您可以使用 detach() 方法从文档中删除它们。例如,
elm1.detach()
、elm2.detach()
和elm4.detach()
。最好还是制作一个要删除的元素的列表,然后在循环中detach()
。干杯。
注意:如果元素不是直接子元素,Document.remove(Element elem) 方法将不起作用。有关更多信息,请参阅文档。
What have you done so far? Well, I would go from the scratch.
Try to get the
Document
usingDocumentHelper.parseText(xmlStr)
Then get the root element of the document using
Document.getRootElement()
After getting the root element, you can loop through all child elements using Element.getElements() or its variants, and check the attributes of each element using
Element.getAttributes()
or its variants.After determining all three elements, which are not required. You can use
detach()
method to remove those from the document. For exampleelm1.detach()
,elm2.detach()
, andelm4.detach()
. Better still make a list of those element, you want to remove, and thendetach()
in a loop.Cheers.
NOTE: Document.remove(Element elem) method will not work if the element is not the immediate child. For more see the docs.