1

我有以下 XML 结构:

...
...
  <CON>
    <LANGUAGES>
      <LANGUAGE>Deutsch</LANGUAGE> 
      <LANGUAGE>English</LANGUAGE> 
    </LANGUAGES>
  <CON>
  ...
  ...

使用下面的代码,我正在尝试检索语言,但是当我尝试打印节点列表的长度时,它只返回 1。

XPath xPath = XPathFactory.newInstance().newXPath();
NodeList nl = (NodeList)xPath.evaluate("/CU_DATA/CU/CON/LANGUAGES", document, XPathConstants.NODESET);                                  

System.out.println(nl.getLength()); 
// Output: 1

我怎样才能得到这两种语言?

4

2 回答 2

3

我怎样才能得到这两种语言?

通过要求LANGUAGE元素而不是LANGUAGES- 毕竟只有一个LANGUAGES元素。所以是这样的:

NodeList nl = (NodeList)xPath.evaluate("/CU_DATA/CU/CON/LANGUAGES/LANGUAGE",
                                       document, XPathConstants.NODESET);   

或者,LANGUAGES按照您当前的操作找到元素,然后获取所有子节点。

于 2013-09-26T07:43:35.210 回答
0

尝试 :

NodeList nl = (NodeList)xPath.evaluate("/CU_DATA/CU/CON/LANGUAGES//LANGUAGE", document, XPathConstants.NODESET);               

或者

NodeList nl = (NodeList)xPath.evaluate("/CU_DATA/CU/CON/LANGUAGES//*", document, XPathConstants.NODESET);               

/用于分隔节点,其中 as//递归返回所有节点

于 2013-09-26T07:45:45.803 回答