首页 文章

xslt xpath使用xpath查询中的元素值

提问于
浏览
0

是否可以在xpath中使用元素值?我有以下xml:

<root>
 <html>
  <table class=" table search-results-property-table">  
                 ....
   <tr>
    <td>
     <span class="versal">HAS TAXONOMIC LEVEL</span>
    </td>
    <td>
     <ul>
      <li>
       <a class="versal" href="../../../agrovoc/en/page/c_11125">genus</a>
      </li>
     </ul>
    </td>
   </tr>
   <tr>
    <td>
     <span class="versal">IS USED AS</span>
    </td>
    <td>
     <ul>
      <li>
       <a class="versal" href="../../../agrovoc/en/page/c_1591">christmas trees</a>
      </li>
      <li>
       <a class="versal" href="../../../agrovoc/en/page/c_7776">timber trees</a>
      </li>
     </ul>
    </td>
   </tr>
    ....
  <table>
 </html>
 <html>
   [second data set...]
    ...
<root>

我希望在xpath中使用元素值HAS TAXONOMIC LEVEL和IS USED . 接下来输出它们的值(例如HAS TAXONOMIC LEVEL),然后得到兄弟td的后代的值:in / ul / li / a - > HAS TAXONOMIC LEVEL下的属,以及IS USED AS下的圣诞树和木材树 . 所以我得到以下内容:

START HERE
=LDR  00000nam  2200000Ia 4500
=305  \\$aHAS TAXONOMIC LEVEL$bgenus
=305  \\$aIS USED AS$bchrismas trees
=305  \\$aIS USED AS$btimber trees

START HERE
=LDR  00000nam  2200000Ia 4500
  (second data set and so on..)

请注意,我在此文件中有多个文档,其xml格式如下所示:

<root>
 <html>
   [DATA SET 1]
         ....
 </html>
      <html>
   [DATA SET 2]
         ....
 </html>
       .....
</root>

谢谢,欢呼!

1 回答

  • 1

    尝试类似的东西:

    <xsl:template match="/root">
        <xsl:for-each select="html/table/tr[td/span='HAS TAXONOMIC LEVEL' or td/span='IS USED AS']">
            <xsl:variable name="span" select="td/span" />
            <xsl:for-each select="td/ul/li/a">
                <xsl:text>$new-line </xsl:text>
                <xsl:value-of select="$span"/>
                <xsl:text> $separator </xsl:text>
                <xsl:value-of select="."/>
                <xsl:text>&#10;</xsl:text>
            </xsl:for-each>
        </xsl:for-each> 
    </xsl:template>
    

    然后在/ ul / li / a中获取它们下面的值

    你错了: Value 不是"below";他们是兄弟姐妹的后裔 td .

相关问题