Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html XPath表示<;td>;要素_Html_Xpath_Xpath 2.0 - Fatal编程技术网

Html XPath表示<;td>;要素

Html XPath表示<;td>;要素,html,xpath,xpath-2.0,Html,Xpath,Xpath 2.0,我在td标签中有一行“line1,line2,line3”。但是,我对使用XPath表达式将line2作为输出感兴趣 <table class = "class1"> <tbody> <tr> <td> line 1, line 2, line 3 </td> </tr> </tbody> </table> 一号线,二号线,三号线 对此的任何

我在td标签中有一行“line1,line2,line3”。但是,我对使用XPath表达式将line2作为输出感兴趣

<table class = "class1">
<tbody>
   <tr>
     <td>
          line 1, line 2, line 3
    </td>
   </tr>
 </tbody>
 </table>

一号线,二号线,三号线
对此的任何输入都会有帮助

这将返回“第2行”:

用通俗易懂的英语说:

tr
元素中查找
td
,该元素依次位于
tbody
元素中,该元素位于
表中。标记此
td
,以逗号作为单独标记的分隔符。返回结果列表中的第二项。使用
normalize-space()
去除任何尾随空格

只有当您可以依赖由逗号等分隔的字符串部分时,表达式才起作用

这使用了仅在XPath2.0中可用的函数。如果您意外地将这个问题标记为
xpath-2.0
,那么答案不会有多大帮助

用于演示的XSLT样式表

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="text"/>

    <xsl:template match="/">
      <xsl:value-of select="/table/tbody/tr/td/normalize-space(tokenize(.,',')[2])"/>
    </xsl:template>

</xsl:transform>

请发布一些代码。任何示例标记输入和预期输出都将helpful@har07预期输出为直线2@danielad已经发布了代码。您是否尝试过
之前的子字符串(在(X,,,,,,,)之后的子字符串)
?看见
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="text"/>

    <xsl:template match="/">
      <xsl:value-of select="/table/tbody/tr/td/normalize-space(tokenize(.,',')[2])"/>
    </xsl:template>

</xsl:transform>
line 2