w3c 文档 xpath 不返回节点集

w3c Document xpath does not return nodeset

提问人:michealAtmi 提问时间:3/25/2022 最后编辑:michealAtmi 更新时间:3/25/2022 访问量:57

问:

你好:)我想拥有所有节点,但集合的长度返回 0。将来我需要属性列表,例如,目前它将是包含 WOW 的单元素列表。但问题是我根本无法选择节点。enumerationenumeration.valueenumeration

xml 部分:

<xs:complexType name="Code.Something">
      <xs:complexContent>
         <xs:restriction base="xxx:Code">
            <xs:sequence>
               <xs:element name="code" form="unqualified">
                  <xs:simpleType>
                     <xs:restriction base="xs:token">
                        <xs:enumeration value="WOW">
                           <xs:annotation>
                              <xs:appinfo>
                                 <Test>ABC</Test>
                              </xs:appinfo>
                           </xs:annotation>
                        </xs:enumeration>

其长度为 1:

((NodeList) xPath.evaluate("//*[local-name()='complexType'][@name='Code.Something']",
        doc, XPathConstants.NODESET)).getLength(); 

它的长度为 0 - 为什么 ?:

 ((NodeList) xPath.evaluate("//*[local-name()='complexType'][@name='Code.Something']/*[local-name()='enumeration']",
        doc, XPathConstants.NODESET)).getLength(); 
Java XML DOM XPath

评论


答:

1赞 JaSON 3/25/2022 #1

节点之间的单斜杠 () 表示要选择 node1 的直接子节点。您需要在节点 () 之间使用双斜杠来选择 node1 的后代node1/node2node2//node1//node2node2

//*[local-name()='complexType'][@name='Code.Something']//*[local-name()='enumeration']