Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XPath进行Java XML解析?_Java_Xpath - Fatal编程技术网

使用XPath进行Java XML解析?

使用XPath进行Java XML解析?,java,xpath,Java,Xpath,这里是XPath和Java的新手。我想做的是这样的: <A> <B> <C>test 1</C> </B> <B> <C/>test 2</C> </B> <B> <C/>test 3</C> </B> </A> for each XMLDoc.children() as BNode

这里是XPath和Java的新手。我想做的是这样的:

<A>
  <B>
   <C>test 1</C>
  </B>
  <B>
   <C/>test 2</C>
  </B>
  <B>
   <C/>test 3</C>
  </B>
</A>

for each XMLDoc.children() as BNode
  array.append(BNode.getXPathValueAt('B/C'));
end for each

测试1
测试2
测试3
对于每个XMLDoc.children()作为BNode
append(BNode.getXPathValueAt('B/C');
每个都结束
在Java中,有没有一种简单的方法可以使用这样的XPath在XML文档中获得深度嵌套的值?我只需要一种快速简便的方法从一个XML文档中提取XPath值,并最终将其粘贴到hashmap或对象中。

您看过。

您看过。

示例代码。干杯:

public class XPathExample {

    static final String XML =
        "<A>" +
        "  <B><C>test 1</C></B>" +
        "  <B><C>test 2</C></B>" +
        "  <B><C>test 3</C></B>" +
        "</A>";

    public static void main(final String[] args) throws Exception {
        final XPathFactory xpathFactory = XPathFactory.newInstance();
        final XPath xpath = xpathFactory.newXPath();
        final InputSource xml = new InputSource(new StringReader(XML));
        final NodeList list = (NodeList) xpath.evaluate("A/B/C", xml, XPathConstants.NODESET);
        for (int i = 0; i < list.getLength(); i++) {
            final Node node = list.item(i);
            System.out.println(node.getTextContent());
        }
    }

}
public类XPathExample{
静态最终字符串XML=
"" +
“测试1”+
“测试2”+
“测试3”+
"";
公共静态void main(最终字符串[]args)引发异常{
最终XPathFactory XPathFactory=XPathFactory.newInstance();
最终XPath=xpathFactory.newXPath();
final InputSource xml=新的InputSource(新的StringReader(xml));
最终节点列表=(NodeList)xpath.evaluate(“A/B/C”,xml,XPathConstants.NODESET);
对于(int i=0;i
示例代码。干杯:

public class XPathExample {

    static final String XML =
        "<A>" +
        "  <B><C>test 1</C></B>" +
        "  <B><C>test 2</C></B>" +
        "  <B><C>test 3</C></B>" +
        "</A>";

    public static void main(final String[] args) throws Exception {
        final XPathFactory xpathFactory = XPathFactory.newInstance();
        final XPath xpath = xpathFactory.newXPath();
        final InputSource xml = new InputSource(new StringReader(XML));
        final NodeList list = (NodeList) xpath.evaluate("A/B/C", xml, XPathConstants.NODESET);
        for (int i = 0; i < list.getLength(); i++) {
            final Node node = list.item(i);
            System.out.println(node.getTextContent());
        }
    }

}
public类XPathExample{
静态最终字符串XML=
"" +
“测试1”+
“测试2”+
“测试3”+
"";
公共静态void main(最终字符串[]args)引发异常{
最终XPathFactory XPathFactory=XPathFactory.newInstance();
最终XPath=xpathFactory.newXPath();
final InputSource xml=新的InputSource(新的StringReader(xml));
最终节点列表=(NodeList)xpath.evaluate(“A/B/C”,xml,XPathConstants.NODESET);
对于(int i=0;i