使用YQL多查询&XPath解析HTML,如何转义嵌套引号?

2024-03-16

标题比它必须的更复杂,这是问题查询。

SELECT * 
FROM query.multi 
WHERE queries="
    SELECT * 
        FROM html 
        WHERE url='http://www.stumbleupon.com/url/http://www.guildwars2.com' 
        AND xpath='//li[@class=\"listLi\"]/div[@class=\"views\"]/a/span';
    SELECT * 
        FROM xml 
        WHERE url='http://services.digg.com/1.0/endpoint?method=story.getAll&link=http://www.guildwars2.com';
    SELECT * 
        FROM json 
        WHERE url='http://api.tweetmeme.com/url_info.json?url=http://www.guildwars2.com';
    SELECT * 
        FROM xml 
        WHERE url='http://api.facebook.com/restserver.php?method=links.getStats&urls=http://www.guildwars2.com';
    SELECT * 
        FROM json 
        WHERE url='http://www.reddit.com/button_info.json?url=http://www.guildwars2.com'"

具体来说这条线,

xpath='//li[@class=\"listLi\"]/div[@class=\"views\"]/a/span'

由于引用而出现问题,我必须将它们嵌套三层深,并且我已经用完了可以使用的引号字符。我尝试了以下变体但没有成功:

//no attribute quoting
xpath='//li[@class=listLi]/div[@class=views]/a/span' 

//try to quote attribute w/ backslash & single quote
xpath='//li[@class=\'listLi\']/div[@class=\'views\']/a/span'

//try to quote attribute w/ backslash & double quote
xpath='//li[@class=\"listLi\"]/div[@class=\"views\"]/a/span'

//try to quote attribute with double single quotes, like SQL
xpath='//li[@class=''listLi'']/div[@class=''views'']/a/span'

//try to quote attribute with double double quotes, like SQL
xpath='//li[@class=""listLi""]/div[@class=""views""]/a/span'

//try to quote attribute with quote entities
xpath='//li[@class="listLi"]/div[@class="views"]/a/span'

//try to surround XPath with backslash & double quote
xpath=\"//li[@class='listLi']/div[@class='views']/a/span\"

//try to surround XPath with double double quote
xpath=""//li[@class='listLi']/div[@class='views']/a/span""

一切都没有成功。

我没有看到太多关于转义 XPath 字符串的内容,但我发现的所有内容似乎都是使用 concat (这不会有帮助,因为 ' 和 " 都不可用)或 html 实体的变体。不使用属性的引号不会不会抛出错误但会失败,因为它不是我需要的实际 XPath 字符串。

我在 YQL 文档中没有看到任何有关如何处理转义的内容。我知道这有多么边缘化,但希望他们能有某种逃生指南。


您需要转义任何分隔 XPath 查询的字符双反斜杠... 换句话说:

SELECT * FROM query.multi 
WHERE queries="
    SELECT * 
        FROM html 
        WHERE url='http://www.stumbleupon.com/url/http://www.guildwars2.com' 
        AND xpath='//li[@class=\\'listLi\\']/div[@class=\\'views\\']/a/span';
    SELECT * 
        FROM xml 
        WHERE url='http://services.digg.com/1.0/endpoint?method=story.getAll&link=http://www.guildwars2.com';
    SELECT * 
        FROM json 
        WHERE url='http://api.tweetmeme.com/url_info.json?url=http://www.guildwars2.com';
    SELECT * 
        FROM xml 
        WHERE url='http://api.facebook.com/restserver.php?method=links.getStats&urls=http://www.guildwars2.com';
    SELECT * 
        FROM json 
        WHERE url='http://www.reddit.com/button_info.json?url=http://www.guildwars2.com'"

(try this in the YQL console http://y.ahoo.it/4aEf5pEO)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用YQL多查询&XPath解析HTML,如何转义嵌套引号? 的相关文章

随机推荐

  • Angular2 ng-bootstrap 模态组件

    我有一个模态成分 https ng bootstrap github io components modal创建于ng 引导程序 https ng bootstrap github io就像下面 只是一个身体
  • 是否可以编写一个接受不同抽象的泛型参数的方法?

    As a 这个问题的后续 https stackoverflow com q 9890866 403455 是否可以编写一个添加Dog到合适的房间 在此示例中 它将接受Animal房间或Dog房间 或者我被迫编写如下两种不同的方法 由于类型
  • 将新行 /n 转换为角度换行符

    我有一个包含换行符 n 的字符串 尝试显示 字符串 它不会将 n 作为新行 而是将 n 显示为文本 scope myOutput Hello n myOutput textFormat 必需 gt 你好 在 html 页面上 Tried a
  • 在catplot中指定颜色

    我想使用seaborn catplot 指定特定观察结果的颜色 在一个虚构的例子中 import seaborn as sns import random as r name list pepe Fabrice jim Michael co
  • C++/CLI,类声明之外的静态构造函数

    如何将托管类的静态构造函数的主体放在类声明之外 这种语法似乎是可编译的 但它真的意味着静态构造函数 还是只是一个静态 在翻译单元之外不可见 函数 ref class Foo static Foo static Foo Foo 是的 这是创建
  • 如何模拟不会导致脆弱测试的实现细节

    我正在读一本关于单元测试的书 下面是引用和代码 不是完整的代码 因为很容易理解代码的作用 首先 作者展示了一个不会导致脆弱测试的嘲笑 Fact public void Successful purchase var mock new Moc
  • 在 Python 中验证 ISO-8601 日期时间字符串?

    我想编写一个接受字符串并返回的函数True如果它是有效的 ISO 8601 日期时间 精确到微秒 包括时区偏移 False否则 我已经发现other https stackoverflow com questions 969285 how
  • 将规则index.php?/controller/method/param重写为/controller/method/param

    我需要这个网址的重写规则 http localhost user frame lib index php controller method 12 22 我怎样才能重写它 我可以这样称呼它 http localhost user frame
  • 如何设置设备邮件发件人姓名?

    我正在使用 Rails 设计 gem 设计向新用户发送确认电子邮件 Actionmailer 配置为使用我的 Gmail 帐户发送电子邮件 电子邮件由发件人发送 电子邮件受保护 cdn cgi l email protection 这是我的
  • 无法在 Linux Mint 19.3 中安装 R 3.6.2 中的 httr 包

    我对 R 完全陌生 我尝试安装httr包裹 我首先安装了 pacman 然后尝试通过运行来加载 httrpacman p load httr 它没有成功 它在终端中显示以下消息 将包安装到 home 用户名 R x86 64 pc linu
  • hdfs 命令在 hadoop 中已弃用

    我正在关注这个程序 http www codeproject com Articles 757934 Apache Hadoop for Windows Platform YouTube 链接 https www youtube com w
  • 如何从文本框获取值

    我改变了我的问题 因为它可能不被理解 也对不起我的英语 动态创建文本框 将它们放入数组中 我的一段代码 public partial class NewArticleForm System Web UI Page private Label
  • 响应式 JavaScript:仅针对小设备宽度执行代码

    我有一些简单的 JavaScript 嵌入在事件中 我只想为小型设备触发它们 电话等 目前我正在做 if window width lt 606 do things 但这感觉很笨拙 有没有办法只对小于某个断点的设备执行此操作 除了设置较早的
  • 为什么在 asp.net 身份中验证电话号码后注销?

    我在我的项目中使用 asp net Identity 在VerifyPhoneNumber查看 当用户确认他的电话号码时 他已注销 AspNetApplicationCookie已移除 我从 资源 选项卡 检查 chrome 中检查了这一点
  • 对多个项目和配置有效使用 Visual Studio 项目属性

    我一直使用 Visual Studio 内置的 GUI 支持来配置我的项目 通常使用属性表 以便多个项目将使用通用集 我对此的主要抱怨之一是管理多个项目 配置和平台 如果您只是使用主 GUI 执行所有操作 右键单击项目 gt 属性 它很快就
  • 如何用 GridLayoutManager 从右到左填充 RecyclerView

    我正在尝试将一些数据填充到RecyclerView with GridLayoutManager GridLayoutManager layoutManager new GridLayoutManager this 3 GridLayout
  • Visual Studio 2012 包管理器控制台错误

    当尝试使用包管理器控制台安装任何内容时 我收到此错误 Install Package The schema version of Microsoft Bcl is incompatible with version 2 0 30625 90
  • Coq:添加“强归纳”策略

    对自然数的 强 或 完全 归纳意味着当证明 n 上的归纳步骤时 您可以假设该属性对于任何 k 都成立 Theorem strong induction forall P nat gt Prop forall n nat forall k n
  • 常规网络服务

    我尝试过使用http groovy codehaus org GroovyWS http groovy codehaus org GroovyWS 在我的 BuildConfig groovy 中 我添加了 compile org code
  • 使用YQL多查询&XPath解析HTML,如何转义嵌套引号?

    标题比它必须的更复杂 这是问题查询 SELECT FROM query multi WHERE queries SELECT FROM html WHERE url http www stumbleupon com url http www