【发布时间】:2012-08-05 11:25:02
【问题描述】:
我有一个如下所示的 xml:
{ <xml><ep><source type="xml">...</source><source type="text">..</source></ep></xml>}
这里我想检索“源类型”的值,其中 type 是一个属性。
我试过这样,但它不起作用:
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document dDoc = builder.parse("D:/workspace1/ereader/src/main/webapp/configurations/config.xml");
System.out.println(dDoc);
XPath xPath = XPathFactory.newInstance().newXPath();
Node node = (Node) xPath.evaluate("//xml/source/@type/text()", dDoc, XPathConstants.NODE);
System.out.println(node);
} catch (Exception e) {
e.printStackTrace();
我也试过了:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader("config.xml"));
Document doc = builder.parse(is);
NodeList nodeList = doc.getElementsByTagName("source");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.hasAttributes()) {
Attr attr = (Attr) node.getAttributes().getNamedItem("type");
if (attr != null) {
String attribute= attr.getValue();
System.out.println("attribute: " + attribute);
}
}
}
请帮帮我!!
提前致谢, 瓦尔沙。
【问题讨论】:
-
您是否尝试过使用VTD-XML vtd-xml.sourceforge.net 它更快,内存效率更高。
-
嗨 Rosdi,不,我没试过,反正 ATR 的代码工作正常,我的 sn-p 也是:) 感谢您的友好回复
标签: java xml xmlnode xml-attribute