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

xslt xpath using element values in xpath query

是否可以使用 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),然后获取兄弟 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>

谢谢,干杯!

试试这样的:

<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>

and then get the values below them in /ul/li/a

你错了:这些值不是 "below" 它们;他们是兄弟姐妹 td.

的后代