为以下xml创建xpath表达式

为以下xml创建xpath表达式,xpath,Xpath,我对XPath非常陌生,我正在创建一个XPath表达式,用于检索以下xml的多个元素 <ol> <li> <a data- key="abc(/parent)" value="superval)">Parent</a> <ol> <li> <a data-key="abc(/parent/1)" data-value="parent-val">Parent/1</

我对XPath非常陌生,我正在创建一个XPath表达式,用于检索以下xml的多个元素

<ol>
<li>
    <a data- key="abc(/parent)" value="superval)">Parent</a> 
    <ol>
     <li>
        <a data-key="abc(/parent/1)" data-value="parent-val">Parent/1</a>
       <ol>
       <li>
          <a data-key="abc(/parent/1/1)" data-value="xyz">Parent/1/1</a>
       </li>
       <li>
          <a data-key="abc(/parent/1/2)" data-value="xyz">Parent/1/2</a>
       </li>
      <li>
          <a data-key="abc(/parent/1/3)" data-value="xyz">Parent/1/3</a>
       </li>
       <li>
          <a data-key="abc(/parent/1/4)" data-value="xyz">Parent/1/4</a>
       </li>
    </ol>
   </li>
 </ol>
 </li>
 <li>
  <a data-key="bcd/(parent1)" value="superval">Parent1</a>
 <ol>
     <li>
        <a data-key="bcd(/parent1/1)" data-value="parent-val">Parent1/1</a>
       <ol>
       <li>
          <a data-key="bcd(/parent1/1/1)" data-value="xyz">Parent1/1/1</a>
       </li>
       <li>
          <a data-key="bcd(/parent1/1/2)" data-value="xyz">Parent1/1/2</a>
       </li>
     <li>
          <a data-key="bcd(/parent1/1/3)" data-value="xyz">Parent1/1/3</a>
       </li>
       <li>
          <a data-key="bcd(/parent1/1/4)" data-value="xyz">Parent1/1/4</a>
       </li>
    </ol>
  </li>
 </ol>
</li>
</ol>
但它只给我一个
元素,我需要一系列元素。我对XPath完全不熟悉,所以这方面的任何帮助都会很有用

非常感谢。 Asheesh

尝试使用contains()函数,在您要查找的范围内,如下所示:

//*[contains(@data-key,'abc(/parent/1/1/)')] 

这将为您提供至少具有该根的数据键的所有节点,例如(parent/1/1/1)到(parent/1/1/4)的示例。虽然您提供的XML片段不包含该范围的数据键,但是您可以将斜杠/数字编辑到您想要的。

您是用什么编程语言或系统来使用XPath来处理这个XML?我使用C++,在这里我使用LIbXML库解析XML。
//*[contains(@data-key,'abc(/parent/1/1/)')]