Java 如何删除父节点将删除其所有子节点?
我有以下.xml文件Java 如何删除父节点将删除其所有子节点?,java,android,xml,xslt,Java,Android,Xml,Xslt,我有以下.xml文件 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id="1"> <name>Book-1</name> <author>Author-1</author> </book> </bookstore> 第一册 作者-1 问题是我想删除带有id=“1”的书。我想要一种
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book id="1">
<name>Book-1</name>
<author>Author-1</author>
</book>
</bookstore>
第一册
作者-1
问题是我想删除带有
id=“1”
的书。我想要一种删除图书节点的方法,以便自动删除其所有子节点。有办法吗?您可以使用XSLT
脚本:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="book[@id='1']"/>
</xsl:stylesheet>
还有另一个简单的解决方案可用于解析XML文件。浏览如何将其与Android集成的文档?由于复制引入了冗余,我将指出这个问题:我想根据我的要求使用DOM解析器。如何使用DOM解析器实现?这不在问题规范中,请给我一分钟时间了解一下,尽管XSLT确实是一种很好的XML转换语言……完成了,但我还没有测试它,目前正在一台没有Java的机器上工作:(
NodeList nList = doc.getElementsByTagName("book");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
if(eElement.getAttribute("id").equals("1")) {
doc.removeChild(eElement);
}
}
}