<a>
<b>
<c type="lol">
<d>1</d>
<f>2</f>
</c>
<c type="lol">
<d>2</d>
<f>2</f>
</c>
<c type="h">
<d>v</d>
<f>d</f>
</c>
</b>
</a>
DocumentBuilderFactory dBFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dB = dBFactory.newDocumentBuilder();
Document doc = dB.parse(url);
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList list = doc.getElementsByTagName("b").item(0).getChildNodes();
我可以说
doc.getElementsByTagName("c").item(0).getchildnode() ;
这会按标签名称“c”获取元素吗?在我的程序中它不起作用。有人可以帮忙吗?
答案 0 :(得分:0)
当你这样做时
NodeList nl = doc.getElementsByTagName("c").item(0).getchildnodes();
然后你有包含元素的节点列表:
<d>1</d>
<f>2</f>
(文档中第一个<c>
元素的子节点)
答案 1 :(得分:0)
我可以说
doc.getElementsByTagName("c").item(0).getchildnode() ;
这是一个简短的简单XPath表达式,用于选择XML文档中第一个c
元素的子元素:
(//c)[1]/*
基于XSLT的验证:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:copy-of select="(//c)[1]/*"/>
</xsl:template>
</xsl:stylesheet>
在提供的XML文档上应用此转换时:
<a>
<b>
<c type="lol">
<d>1</d>
<f>2</f>
</c>
<c type="lol">
<d>2</d>
<f>2</f>
</c>
<c type="h">
<d>v</d>
<f>d</f>
</c>
</b>
</a>
我们得到想要的,正确的结果 - 评估XPath表达式并将选定的节点复制到输出:
<d>1</d>
<f>2</f>