有没有办法在 Nokogiri css 中转义非字母数字字符?

2024-06-26

我有一个锚标签:

file.html#stuff-morestuff-CHP-1-SECT-2.1

尝试提取 Nokogiri 中引用的内容:

documentFragment.at_css('#stuff-morestuff-CHP-1-SECT-2.1')

失败并出现错误:

unexpected '.1' after '[#<Nokogiri::CSS:
:Node:0x007fd1a7df9b40 @type=:CONDITIONAL_SELECTOR, @value=[#<Nokogiri::CSS::Node:0x007fd1a7df9b90 @type=:ELEMENT_NAME, @value=["*"]>, #<Nokogiri::CSS::Node:0x007fd1a7df9cd0 @
type=:ID, @value=["#unixnut4-CHP-1-SECT-2"
]>]>]' (Nokogiri::CSS::SyntaxError)

只是想谈谈这个 - 我认为 Nokogiri 正在抱怨.1在selectorId中,因为.在 html id 中无效。

我不拥有这些内容,所以如果可以避免的话,我真的不想检查并修复所有错误的 ID。有没有办法在 nokogiri 中转义非字母数字选择器.css() call?


假设您的 HTML 看起来像这样:

<div id='stuff-morestuff-CHP-1-SECT-2.1'>foo</div>

有问题的字符串,stuff-morestuff-CHP-1-SECT-2.1, is a 有效的 HTML ID http://www.w3.org/TR/html5/dom.html#the-id-attribute, 但它isn’t a 有效的 CSS 选择器 http://www.w3.org/TR/selectors/#id-selectors — the .字符在那里无效。

你应该能够逃脱.带有斜杠字符,即这是一个有效的 CSS 选择器:

#stuff-morestuff-CHP-1-SECT-2\.1

不幸的是,这似乎在 Nokogiri 中不起作用,它在 CSS 到 XPath 的转换中可能存在错误。 (它在浏览器中有效)。

您只需检查即可解决此问题id直接属性:

documentFragment.at_css('*[id="stuff-morestuff-CHP-1-SECT-2.1"]')

即使斜杠转义有效,您可能也必须检查id像这样的属性,如果它的值以数字开头,这在 HTML 中是有效的,但不能(据我所知)表示为 CSS 选择器,即使使用转义也是如此。

您还可以使用 XPath,它有一个id功能 http://www.w3.org/TR/xpath/#function-id您可以在这里使用:

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

有没有办法在 Nokogiri css 中转义非字母数字字符? 的相关文章

  • Hashie::Mash 从字符串恢复

    我在这个问题上很挣扎 我已经存储了一个Hashie Mash到一个字符串中 我很难将其恢复为哈希值 这是字符串 map Hashie Mash ncreated at Mon Jul 30 15 42 20 0000 2012 nid 22
  • Html 中的过滤表行

    我创建了一个 html 页面 其中包含搜索文本和下表 表中包含一些数据 我使用了可用的代码JSFiddle http jsfiddle net 7BUmG 2 但这没有用 请提出类似于所示示例的建议 我使用简单的 html CSS 和 Ja
  • 如何使用 AOS 触发向上滚动动画

    我正在使用 AOS 库 css 和 js 它可以帮助我创建每次用户向下滚动页面时触发的动画 我有一个问题 页面的顶部元素仅运行一次 因为 AOS 仅在向下滚动时触发它 我希望我的所有动画在每次用户向下和向上滚动时运行 我怎样才能做到呢 这是
  • 如何使用javascript将div从左向右移动

    I have div named movingImage每次单击按钮时我都想向右移动 50px 这是我的 JavaScript function moving Image document getElementById movingImag
  • Json(/hash) 到 ruby​​ 对象?

    在 Javascript 中 您可以将 json 作为对象访问 person name first Peter last Parker person name first 在红宝石中我必须像这样使用它 person name first 是
  • 如何使CSS导航栏在窗口向下滚动时不移动?

    在我的网站上 我的背景图像始终保持居中 导航始终水平保持在同一位置 因此水平尺寸并不重要 它始终位于同一位置 我使用以下方法做到了这一点 nav list style none position fixed right 50 margin
  • 为什么在 Vue.js 中从列表中删除项目时移动转换需要绝对位置

    https v2 vuejs org v2 guide transitions html List Move Transitions https v2 vuejs org v2 guide transitions html List Mov
  • 带 Bootstrap 选项卡的 Rails

    我有一个 Rails 4 应用程序 我正在尝试合并 Bootstrap 选项卡 阅读引导文档 它说这样做的一种方法不涉及任何js 我已经尝试了文档中的每种方法 但无法让它们在我的应用程序中工作 我目前的尝试是 ul class nav na
  • CSS 效果渲染具有“橡皮图章”效果的字体

    CSS中有没有有效的方法来渲染字体 使其看起来像橡皮图章 好像橡皮印章上的墨水覆盖在印刷材料上 更好的是将相同的效果应用于边框 就好像边框是橡皮图章的一部分一样 像这样 这与您正在寻找的内容很接近 它使用了覆盖伪元素以及mix blend
  • jQuery 相当于 YUI StyleSheet Utility?

    jQuery 或其插件之一 是否具有与YUI 样式表实用程序 http developer yahoo com yui 3 stylesheet StyleSheet Utility 能够从头开始创建新的样式表 以及修改作为来自同一域的元素
  • 通过删除顶部和底部的空间来添加段落中的行高

    我正在尝试使用 css 在段落中添加行高 下面是我的html div p Lorem ipsum dolor sit amet oratio doctus his an Nisl saperet delenit ad eos his ero
  • python:pythonbrew 和 virtualenv 有什么区别?

    我是python新手 打算学习django 我对 ruby 不是 Rails 有一些经验 并且熟悉RVM http beginrescueend com 但是我不明白之间的区别蟒蛇酿造 https github com utahta pyt
  • 减少哈希值

    我在使用reduce 语法时遇到了问题 我有以下格式的哈希 H Key1 gt 1 Key2 gt 2 我想使用reduce 来查找该函数中值的总和 就像是 H reduce 0 memo elem memo elem 我知道这是错误的 我
  • Rails:构建涉及多态关联和 STI 的查询

    我正在尝试查找有关照片的 10 条最新评论 以便将它们集成到我的 Rails 3 0 3 应用程序上的活动提要中 我有一个Photo模型 它继承自Upload使用单表继承的模型 class Upload lt ActiveRecord Ba
  • Ruby 相当于 Python 的多处理模块是什么?

    为了在 Ruby 或 Python 中获得真正的并发性 我需要创建新的进程 Python 使用以下命令使这变得非常简单multiprocessing模块 它抽象了所有 fork wait 的好处 让我专注于我的代码 Ruby 有类似的东西吗
  • 如何使用 Flex 创建自定义马赛克

    我正在尝试使用 Flex 创建一个自定义马赛克 如下所示 除了框 4 的高度和宽度加倍之外 所有框的宽度都是父容器的三分之一 我设法达到以下条件 push group element ul push group element ul li
  • css bootstrap 下拉菜单在 IE 中看起来不同

    我正在使用CSS引导程序3 2 0 http getbootstrap com css 然而 当在 IE 中查看该网站时 菜单选项周围有一个黑色边框 而且下拉菜单按钮看起来也有所不同 如果您查看该网站http getbootstrap co
  • RubyMine - 没有为项目配置 Ruby 解释器

    我进入 设置 Ruby SDK 和 Gems 然后选择C RailsInstaller Ruby1 9 3 bin ruby exe 它在右侧加载了一堆宝石 看起来它会起作用 我点击 确定 但仍然有糟糕的语法突出显示 并且它仍然认为它没有
  • Javascript - HTML Canvas 上的 Gecko 边框半径自适应(CSS border-radius)

    我试图弄清楚如何将 border radius css 属性的行为重现到 HTML 画布中 所以我已经在 J avascript 中做了一些事情 以便使用特定的半径 对于每个角 来计算给定形状的正确边界 如果需要的话 这是上一个问题 Gec
  • 如何在流体宽度表中使用省略号而不使每列大小相同?

    假设我的表中的列是id name description and phone The description列的长度为 1 255 个字符 但 id 最多只有 3 个字符 我希望列的大小适当 而不是每列的大小相同 我想要descriptio

随机推荐

  • Blackberry 上的套接字连接比 http 更快吗?

    我正在为 Blackberry 编写一个应用程序 该应用程序最初是在标准 J2ME 中实现的 网络连接是使用完成的Connector open socket 80 代替http 现在 我已经使用这两种方法实现了连接 似乎有时 套接字方法响应
  • 如何获取类库项目中的连接字符串

    在我的 net 解决方案中 我有两个不同的项目 一个 MVC 核心 Web 应用程序项目和一个类库项目 在Web应用程序项目中 数据库连接字符串位于appsettings json文件 我想从类库项目访问该连接字符串 是否可以 如果是 怎么
  • 限制主题创建/更改

    我有一个 3 节点不安全的 kafka v0 10 2 1 集群 禁用了主题自动创建和删除功能 如下所示server properties auto create topics enable false delete topic enabl
  • 使用绑定变量动态传递表名和列名

    有没有办法使用绑定变量将列名和表名动态传递给查询 这可以通过使用简单的串联运算符来完成 但我想要一种不同的方法来实现这一目标 EDIT OPEN abc cur FOR Select column name from table name
  • 在android中添加音频到视频

    我想开发一个可以录制视频 mp4 的android应用程序 然后我的资源文件夹中有一些音频文件 mp3 我想将其添加到视频的末尾 所以最终的效果就像首先播放视频 在视频结束时会听到添加的音频 我该怎么做 合并具有不同音频编解码器的文件并不容
  • 如何制作可扩展的文本框?

    我想制作一本以给定宽度 高度开始的教科书 然后 如果用户输入的内容超过给定的空间量 文本框就会向下扩展 我该怎么做呢 我使用 CSS 吗 当用户超过允许的行数时 基本文本框仅显示滚动条 如何使文本框将行数再扩展 5 行
  • 如何将 JSON 对象解析为 TypeScript 对象

    我目前正在尝试将收到的 JSON 对象转换为具有相同属性的 TypeScript 类 但无法使其工作 我究竟做错了什么 员工阶层 export class Employee firstname string lastname string
  • 在 JavaScript 中按名字(按字母顺序)对数组进行排序[重复]

    这个问题在这里已经有答案了 我有一个数组 请参阅下面的数组中的一个对象 我需要使用 JavaScript 按名字排序 我该怎么做 var user bio null email email protected cdn cgi l email
  • 服务器上的 Nano 忽略某些语法着色

    我在用着nano通过 ssh 在服务器上 在该系统上 nano默认情况下没有启用语法颜色 所以我复制了这些纳米语法 http code google com p nanosyntax files 对于替代方案 另请参阅 CraigBarne
  • 在多个 EC2 实例上运行的相同 Kinesis Consumer

    我有多个 EC2 实例为同一个微服务运行 其中有一个 Kinesis 使用者正在运行 使用 KCL 我的问题是 当 Kinesis Stream 获取新事件时 由于所有消费者都在轮询 同一事件是否会被所有实例的消费者消费 KCL 的设计使得
  • 如何让 Numpy 将每一行/张量视为一个值

    许多功能 例如in1d https docs scipy org doc numpy 1 13 0 reference generated numpy in1d html and setdiff1d https docs scipy org
  • 以编程方式设置 Jetty GzipHandler

    我在玩码头GzipHandler它的工作方式似乎相当奇怪 它只压缩已经压缩的文件 我的整个设置是 GzipHandler gzipHandler new GzipHandler gzipHandler setHandler myHandle
  • Git 和外部备份。子目录是空的,我宁愿它不是空的。

    我想使用 Git 创建外部备份系统 这部分是受到答案的启发在外部磁盘上备份整个 git 存储库的最佳方法是什么 https stackoverflow com a 4372855 2533127 其中建议如下 您还可以通过启动一个新的存储库
  • locationManager:didRangeBeacons 方法未检测到 BLE 设备

    我正在使用 Nordic BLE nRF8001 开发套件来测试 CoreBluetooth 使用 CBCentralManager 的方法 例如 didDiscoverPeripheral didConnectPeripheral 等 我
  • 如何在 Linux 上正确地将网络接口置于混杂模式

    那么如何正确地做到这一点呢 我知道如何通过创建套接字 然后使用 ioctl 设置 IFF PROMISC 标志来做到这一点 如 如何在C中检查网络设备状态 https stackoverflow com questions 3055622
  • 转置矩阵存储在一维数组中,无需使用额外的内存[重复]

    这个问题在这里已经有答案了 可能的重复 矩阵的就地转置 https stackoverflow com questions 9227747 in place transposition of a matrix 最近参加了技术笔试 通过以下问
  • 在 React Native 中实现警报的最佳方法?

    我需要将警报功能添加到我的反应本机应用程序中 您必须手动停止 暂停的闹钟像这些 https www androidauthority com alarm clock apps android 101618 为此 我一直在浏览以了解应该实施哪
  • 将 WinForms ListBox 绑定到对象属性

    我第一次做一些 WinForms 编码 并尝试使用数据绑定 我有一个列表框 我将其绑定到控制器对象中的字符串数组 并且我还想将列表框中的 SelectedItem 绑定到控制器上的另一个字符串属性 以便我可以跟踪它 listBox Data
  • Codemirror光标位置偏移

    我正在使用代码镜像在网页中显示 突出显示和编辑 xml 但我遇到了光标位置偏离插入位置的问题 因此 如果从闪烁光标所在的位置删除字符 则删除之前的字符您期望的那个会被删除 我假设它与我当前页面存在 css 冲突 因为它在我的页面之外运行良好
  • 有没有办法在 Nokogiri css 中转义非字母数字字符?

    我有一个锚标签 file html stuff morestuff CHP 1 SECT 2 1 尝试提取 Nokogiri 中引用的内容 documentFragment at css stuff morestuff CHP 1 SECT