<body><....> <table> <tbody> <tr> <td/> <td/> <td> <table> <tr> <....> </tr> </table> </td> </tr> </tbody> </table></body>
在上述结构中,< tbody>可能存在也可能不存在.表可以嵌套到任何级别.现在我想获取给定表的所有行.因此,当我处理外部表时,我想只获取外部行(一个包含3个tds)而不是内部tr(在嵌套表中).如何使用XSLT或XPath执行此 *** 作?
编辑:我基本上寻找的是一种获取节点x的所有后代:: y的方法,但y不应该是另一个x的后代.来自x-> y的路径不应包含另一个x.我可能没有任何区别外部x和内部x的东西.
注意:我正在尝试使用许多具有不同结构的HTML来执行此 *** 作,并且我无法更改任何HTML文件的结构 – 它是给我的.唯一的问题是它们都是格式良好的xhtml.
谢谢你的帮助.
解决方法What I am essentially looking for is a way of getting all
descendant::y
for a nodex
,buty
should not be a descendant of
anotherx
.
假设$n是名为x的元素.你要:
$n//y[count(ancestor::x) = count($n/ancestor-or-self::x)]
这将选择所有y为$n的后代,并且具有如此数量的x个祖先,这些祖先恰好比$n的祖先:: x的数量大一个.
因为$n包含一个x元素,这意味着对于所有选定的y,$n中包含的x是它们的第一个祖先:: x.
出于实际目的,您只需要使用精确的XPath表达式替换上面的$n,该表达式选择它包含的x元素.
总结以上是内存溢出为你收集整理的如何使用XSLT获取嵌套HTML表的行全部内容,希望文章能够帮你解决如何使用XSLT获取嵌套HTML表的行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)