Html XPath表示<;td>;要素
我在td标签中有一行“line1,line2,line3”。但是,我对使用XPath表达式将line2作为输出感兴趣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> 一号线,二号线,三号线 对此的任何
<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