【问题标题】:Xpath expression to select all tags after <script>.....</script>Xpath 表达式选择 <script>.....</script> 之后的所有标签
【发布时间】:2011-10-27 13:34:44
【问题描述】:

我在使用 XPath 获取 &lt;script&gt;...&lt;script/&gt; 之后的所有 HTML 标记时遇到了一些问题。

我的 HTML:

<table dir="rtl"...>
    <tbody>
    <tr>..</tr>
    <script src = get.aspx?type=js&file=ajax&rev=3 ....>
    <script language="JavaScript".....>
    <script>...<script>
    <tr>..</tr>
    <tr>..</tr>
    <tr>..</tr>
    <tr>..</tr>
    <tr>..</tr>

我想获取 XPath 中 script 标签之后的所有标签。

这是网页链接:source

【问题讨论】:

  • 如果您想获取文档的其余部分,您可能不应该为此使用 XPath。 SAX 解析可能会更有效。当你实现一个开始解析元素的回调函数时,检查它是否是script并将BOOL hitJavascript设置为YES,然后当你解析tr时检查if(hitJavascript),然后做你想做的事当您在 tr 内部时,想要内部的 td

标签: xpath


【解决方案1】:

您发布的 html 在&lt;script language="JavaScript".....&gt; 之后有一个&lt;script&gt;...&lt;script&gt;1,但the source 没有额外的&lt;script&gt; 标记。

对于源 HTML,此 XPath 有效:

//script[@language="JavaScript"]/following::tr

1你是说&lt;script&gt;...&lt;/script&gt;吗?

【讨论】:

  • 谢谢。这可行,但只能在脚本中获取文本,我想在脚本之后选择所有 。
  • 这种情况下改following::* --> following::tr
  • 在脚本之后的每个 中都有很多 td 。例如第二个 包含很多 (td id = "jm0x1")(td id = "jm0x2") 但我不能访问它们。我需要帮助
  • 感谢 darvids0n 的回答。我是 html 解析的新手,我正在使用 HPPLE 在 iphone 上解析 html 如何使用 SAX 解析。
猜你喜欢
相关资源
最近更新 更多
热门标签