【问题标题】:Invalid token while executing xpath执行 xpath 时令牌无效
【发布时间】:2016-09-01 23:15:09
【问题描述】:

我在尝试使用 HtmlAgilityPack 选择节点时收到无效令牌错误。

我使用的 Xpath 是:

"//article[contains(@class, 'product-buy')]/div[@class='product-price-wrapper']/div[@class='price']​"

不确定哪个是无效令牌,我该如何解决这个问题

我用 ' 尝试了其他一些 xpath 并且工作正常

【问题讨论】:

    标签: c# xpath html-agility-pack


    【解决方案1】:

    最后一个括号和右引号之间有一个字符。在此网页上,它是一个 Unicode 字符“零宽度空间”(U+200B)。您可以通过尝试在编辑器中通过字符串箭头来判断。

    【讨论】:

    • 我认为情况并非如此,因为 xpath div[@class='price'] 在其他情况下对我有用
    • @JibinMathew - 你确定吗?尝试删除 xpath(包括引号)并尝试 "//article[contains(@class, 'product-buy')]/div[@class='product-price-wrapper']/div[@class='price']"(相同的 xpath,但没有零宽度空间)。
    • 是的,零宽度空间是问题所在。如果我们使用 .Trim() 那么它会被解决吗??
    • 当然——如果您不能直接从源代码中删除它。它不是 Trim 等人默认使用的标准字符之一,因此您必须指定它。由于它不是视觉字符,我建议用十六进制拼写出来。示例:.TrimEnd('\u200B').
    猜你喜欢
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2012-04-09
    • 2017-02-25
    • 2017-03-09
    相关资源
    最近更新 更多