【问题标题】:Getting XPath error trying to create a XPathQueryString尝试创建 XPathQueryString 时出现 XPath 错误
【发布时间】:2014-08-11 08:52:57
【问题描述】:

我是编写 XML 查询的新手;也就是说,我正在尝试解析一些 HTML。这是我试图找到第一次出现的 XPath 查询字符串:

    NSString *sourceXpathQueryString = @"border=0 title=\"";

这是我正在看的:

<div><img style="border: solid 1px #383c40; " src='http://ecx.images-amazon.com/images/I/51WXZRJ3B5L._SX220_.jpg' width=220  border=0 title="Women Who Run With The Wolves:  Myths And Stories Of The Wild Woman Archetype">

我收到一个错误:

XPath 错误:无效的表达式边框=0 title="

在标题的第一个字母下带有 ^。我在正则表达式中使用了这个,没有问题。

我在 Google 中寻求帮助,但没有发现任何特定于此错误的信息。我正在使用一个名为 TFHpple 的 API 来解析 iOS 中的 HTML(正确返回)。帮助将不胜感激解决这个问题。 :D

【问题讨论】:

  • 您想从 HTML 中获取什么元素?
  • border=0 title="与狼同行的女性:狂野女性原型的神话和故事"
  • 您能否添加包含出现这些属性的元素的 HTML 摘录?如果不看到至少一些文档结构,就不可能执行 XPath。另外,您要检索什么? title 属性的内容?
  • 更新了问题以显示文档结构的一部分...尝试获取书名...如果我能确定这一点,那么我可以毫无问题地获得该书的其他属性.

标签: html ios7 xpath


【解决方案1】:

您可以尝试使用此 XPath 来获取具有 title 属性且 border 属性值等于 0 的 &lt;img&gt; 标记,在 HTML 文档的任何级别:

//img[@title and @border='0']

请说明这是否不是您要获取的元素。

更新:

响应您的评论,您可以在 XPath 上方附加 /@title 以获取 &lt;img&gt; ike so 的 title 属性:

//img[@border='0']/@title

【讨论】:

  • 在 XPath 中,// 表示当前上下文节点的自身和后代(我猜在您的情况下上下文是根元素)。这就是为什么我说“......在任何级别的 HTML 文档”
  • 我想我需要在 XPath 上做很多阅读......我很困惑...... :-{ 但我感谢你的时间......至少它有效...... :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-06
  • 2013-09-12
  • 2015-01-15
  • 2016-07-12
  • 2018-06-28
相关资源
最近更新 更多