如何使用 Nokogiri 将带有 & 符号的字符串放入 xml 文件中?

2024-05-24

我试图在 XML 文件中包含图像的 URL,并且 URL 查询字符串中的 & 符号被删除:

bgdoc.xpath('//Master').each do |elem|
  part = elem.xpath('Part').inner_text
  image = imagehash[part]
  image = "" if image.blank?
  elem.xpath('Image').first.content = "<![CDATA[#{image}]]>"
  puts elem.xpath('Image').first.content
end

bgdoc 稍后会在 Builder 的帮助下编写出来。但不是单个元素,它是一次性插入的。这使得它与 SO 上发布的类似问题不同。


你应该使用create_cdata http://nokogiri.org/Nokogiri/XML/Document.html#method-i-create_cdata创建一个 CDATA 节点,然后add_child http://nokogiri.org/Nokogiri/XML/Node.html#method-i-add_child要将其添加到文档中,只需分配一个字符串即可content会给你留下&lt;!CDATA...在你的 XML 中,这不是很有用。

一个简短的例子应该可以说明这个过程:

xml   = '<Master><Image></Image><Image></Image></Master>'
bgdoc = Nokogiri::XML(xml)
cdata = bgdoc.create_cdata('/where?is=pan&cakes=house')
bgdoc.xpath('//Image').first.add_child(cdata)

那么,如果你bgdoc.to_xml你会得到这样的东西:

<?xml version="1.0"?>
<Master>
    <Image><![CDATA[/where?is=pan&cakes=house]]></Image>
    <Image/>
</Master>

我认为这就是您正在寻找的结果。但是,如果您只是将一个字符串分配给content:

bgdoc.xpath('//Image').first.content = '<![CDATA[/where?is=pan&cakes=house]]>'

然后你会得到这个 XML:

<?xml version="1.0"?>
<Master>
    <Image>&lt;![CDATA[/where?is=pan&amp;cakes=house]]&gt;</Image>
    <Image/>
</Master>

而且它甚至没有 CDATA 节点。

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

如何使用 Nokogiri 将带有 & 符号的字符串放入 xml 文件中? 的相关文章

  • 用于将唯一项插入数组的 Ruby 条件

    我知道如果你有一个array并将其引用为array uniq它将返回 没有任何重复项 然而 在本例中 它是一个对象数组 这是正确的 Ruby 语言吗 我希望每个电话都进入 calls数组除非call from与数组中已存在的 call fo
  • SQL Server 截断 XML 返回值

    我正在调试我们组织中现有的存储过程 它尝试返回一个 2047 字节长的 XML 字符串 使用 for XML auto 当我在 SSMS 中运行存储过程时 返回值出现在结果窗口中 如果我单击该值 显示为超链接 则会打开一个新窗口并显示整个字
  • Ruby 中的数组切片:不合逻辑行为的解释(取自 Rubykoans.com)

    我正在做练习鲁比 科恩斯 http rubykoans com 我对以下 Ruby 怪癖感到震惊 我发现它确实无法解释 array peanut butter and jelly array 0 gt peanut OK array 0 1
  • 使用自定义令牌进行 Firebase 身份验证

    我有一个 firebase 项目 我试图从我的 Rails 服务器进行身份验证 按照文档上的说明使用 ruby jwt 库创建自定义令牌 但我不断收到相同的错误 auth invalid custom token 自定义令牌格式不正确 请检
  • 编辑 XDocument 中的特定元素

    我最近开始学习C 使用时遇到了问题XML Linq存储数据 我希望这个问题是可以理解的 因为我还不熟悉所有正确的术语 而且英语不是我的母语 我读了很多问题 谷歌搜索 但我自己无法弄清楚 我想更新现有的 XDocument 文件 如下所示
  • 使用 python 元素树从 xml 在 Excel 工作表中创建子表

  • before_filter set_locale 除了控制器

    My routes rb MyApp Application routes draw do scope locale do all resources here end namespace blog do resources posts o
  • setContentView 上的另一个资源$NotFoundException

    Stack Overflow 上有很多 Resources NotFoundException 问题 我已经查看了它们并尝试了各种建议 但均无济于事 我有一个完美的工作布局来显示一些图形 下面有一些按钮 我修改了一些按钮并开始出现此错误 我
  • Codemirror光标位置偏移

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

    我有一个锚标签 file html stuff morestuff CHP 1 SECT 2 1 尝试提取 Nokogiri 中引用的内容 documentFragment at css stuff morestuff CHP 1 SECT
  • Ruby IMAP 库:如何显示文件夹中的所有邮件?

    我需要一个脚本来获取所有文件夹中的所有电子邮件 并对其及其附件进行本地备份 here https www ombulabs com blog ruby imap a comprehensive guide to interacting wi
  • 尝试打开 Android XML 视图时 Eclipse 中抛出 NullPointerException?

    这是例外情况 java lang NullPointerException at android widget TextView setTextColor TextView java 1787 at android widget TabHo
  • VS 2012 语法高亮

    我有 2 台计算机运行 VS 2012 pro 但它们都没有像 VS2010 那样显示基于 XML 的文件的任何突出显示或着色 我安装的唯一快捷版工具是 SQL 2012 所以我不认为这是问题所在 其中一台计算机上从未安装过 WebMatr
  • ruby require 问题(与 $LOAD_PATH 有关)

    我正在尝试使用我刚刚安装的 gem 通过sudo gem install excelsior 像这样 需要 红宝石 要求 精益求精 这在 irb 中工作得很好 但是当我将完全相同的代码粘贴到 rb 文件中并尝试使用 ruby 运行它时 我得
  • Ruby 中的图像抓取

    如何使用 Nokogiri 抓取特定 URL 上存在的图像 如果有比 Nokogiri 更好的选择 请提出建议 css图像标签是 profilePic img 如果它只是一个 img 带有网址 PAGE http site com page
  • 如何设置 Apache FOP 中的默认语言

    我正在使用 Apache FOP 2 1 生成 PDF 文件 为此 我尝试将默认语言设置为英语 这应该在通过 Adob e Reader 的选项 文件 属性 高级 阅读选项 创建 PDF 后进行验证 该值当前为空 我尝试过设置xml lan
  • 登录西纳特拉?

    我无法弄清楚如何使用 Sinatra 记录消息 我不想记录请求 而是在我的应用程序中的某些点记录自定义消息 例如 当获取 URL 时 我想记录 Fetching url 这就是我想要的 指定日志级别的能力 例如 logger info Fe
  • 用于从 Open3.popen3 标准输出中提取值的正则表达式

    如何获取外部命令的输出并从中提取值 我有这样的事情 stdin stdout stderr wait thr Open3 popen3 path foobar configfile if exit 0 wait thr value to s
  • 使用 XML 文档部署 Web API 项目时,构建服务器上“访问被拒绝”

    为了使用 Web API 帮助页面为我的 Web API 项目生成 XML 文档 我必须检查项目属性的 构建 部分下的 XML 文档文件 选项 当我在本地构建时 这会正确生成文档 但是 当我签入时 我在构建服务器上收到以下错误 CSC 生成
  • SQL Server XQuery 返回错误

    我正在 SQL Server 2012 中对 XML 数据类型列执行查询 数据示例如下

随机推荐