0
有人可以解释为什么会发生这种情况;这下面是我已经得到了代码:Xpath获取DOM子树的所有属性?
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<title text=\"title1\">\n" +
" <comment id=\"comment1\">\n" +
" <data> abcd </data>\n" +
" <data> efgh </data>\n" +
" </comment>\n" +
" <comment id=\"comment2\">\n" +
" <data> ijkl </data>\n" +
" <data> mnop </data>\n" +
" <data> qrst </data>\n" +
" </comment>\n" +
"</title>\n";
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(new InputSource(new StringReader(xml)));
NodeList nlist = doc.getElementsByTagName("comment");
XPathFactory xpf = XPathFactory.newInstance();
XPath xp = xpf.newXPath();
NodeList nodes = (NodeList)xp.evaluate("//@*", nlist.item(0), XPathConstants.NODESET);
for(int i = 0; i < nodes.getLength(); i++)
System.out.println(nodes.item(i));
产生的输出是:
text="title1"
id="comment1"
id="comment2"
的问题是,我试图做一个子树的XPath查询(即第一所以我只想得到这个子树的所有属性,但由于某种原因,无论我通过哪个子树,它总是返回全部属性节点,好像对象被传入xpath评估者是根节点。
我怎样才能通过并评估所有属性为子树?
非常好!你能解释一下这是如何工作的吗?! – Larry