我正在尝试解析格式的XML文件。
<parent tag>
<child tag>
<element key="property1">value</element>
<element key="property2">value</element>
</child tag>
</parent tag>
如何获取element
的{{1}}代码的值?我的代码如下。
property1
我正在使用DOM解析器。请帮助。
谢谢。
答案 0 :(得分:3)
这完成了这里的工作(DOM + XPath),更多文档在这里:http://www.ibm.com/developerworks/library/x-javaxpathapi/index.html
以下是关于xpath及其工作原理的一个很好的解释:http://www.xmlplease.com/axis
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
public class XmlParseTest {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("test.xml");
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
XPathExpression expr = xpath.compile("//element[@key='property1']/text()");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
}
}
}
答案 1 :(得分:1)
"An Introduction to APIs for XML Processing"是开始学习Java中的XML解析
的一个好点