设置标签属性并使用 nokogiri builder (ruby) 将纯文本内容添加到标签

2024-01-14

我正在尝试使用 Nokogiri 和一些标签构建 XML,这些标签内既有属性又有纯文本。所以我试图做到这一点:

<?xml version="1.0"?>
<Transaction requestName="OrderRequest">
  <Option b="hive">hello</Option>
</Transaction>

使用构建器我有这个:

builder = Nokogiri::XML::Builder.new { |xml|
  xml.Transaction("requestName" => "OrderRequest") do
    xml.Option("b" => "hive").text("hello")
  end
}

这呈现为:

<Transaction requestName="OrderRequest">
  <Option b="hive" class="text">hello</Option>
</Transaction>

所以它产生<Option b="hive" class="text">hello</Option>我希望它在哪里<Option b="hive">hello</Option>

我不知道该怎么做。如果我尝试通过向 Nokogiri 对象提供我想要的 XML 来获取它,它会准确地呈现出我需要的内容,并且内部文本位于<Option>标签设置为children=[#<Nokogiri::XML::Text:0x80b9e3dc "hello">]我不知道如何从构建器中设置它。

如果有人在 Nokogiri 文档中引用过该内容,我将不胜感激。


您可以使用两种方法。

Using .text

您可以致电.text设置节点文本的方法:

builder = Nokogiri::XML::Builder.new { |xml|
  xml.Transaction("requestName" => "OrderRequest") do
    xml.Option("b" => "hive"){ xml.text("hello") }
  end
}

其产生:

<?xml version="1.0"?>
<Transaction requestName="OrderRequest">
  <Option b="hive">hello</Option>
</Transaction>

使用文本参数的解决方案

或者,您可以将文本作为参数传递。文本应在属性值之前传入。换句话说,标签的添加形式如下:

tag "text", :attribute => 'value'

在这种情况下,所需的构建器将是:

builder = Nokogiri::XML::Builder.new { |xml|
  xml.Transaction("requestName" => "OrderRequest") do
    xml.Option("hello", "b" => "hive")
  end
}

生成相同的 XML:

<?xml version="1.0"?>
<Transaction requestName="OrderRequest">
  <Option b="hive">hello</Option>
</Transaction>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置标签属性并使用 nokogiri builder (ruby) 将纯文本内容添加到标签 的相关文章

随机推荐

  • 我可以将多个 Android 密钥库文件合并为一个吗?

    我在使用 Android 密钥库文件时遇到了一个有点烦人的情况 目前 我有几个不同的应用程序 每个应用程序都使用不同的密钥库文件进行签名 有点像这样 使用 AppName1 keystore 签名的 AppName1 apk 使用 AppN
  • Android onItemClicklistener 在列表视图中不起作用

    谁能帮我解决我的问题 我有一个 TabActivity 每个选项卡在触摸时都会打开一个新的活动 该活动扩展了 ListActivity 此时我得到了所需项目的列表 我想通过使用 OnItemClickListener 使其可点击 我正在附上
  • 使用 bash、sed 或 awk 拆分 CSV 文件并排除输出中的列

    我有一个 CSV 文件 其中包含如下数据 1 275 275 17 3 0 2011 05 09 20 21 45 2 279 279 17 3 0 2011 05 10 20 21 52 3 276 276 17 3 0 2011 05
  • 如何在 vscode 中将 .ipynb 作为常规文本而不是 IPython 笔记本查看

    VS Code 最近添加了使用 Jupyter Notebooks 的功能 ipynb文件 这就是说它将它们呈现为笔记本而不是底层文本 我遇到的问题是我想对原始文本而不是 笔记本 进行一些编辑 但我不知道如何像其他编辑器那样将其显示为文本文
  • git push -f 与 +

    这样做有什么区别 git push f origin my branch my branch and git push origin my branch my branch 这是实现同一目标的两种语法 除了那个git push force当
  • 我可以从视图调用模型吗?

    我没有使用成熟的 PHP MVC 而是设计了一个最适合我的用途的 MVC 我已经完成了基本框架 并编写了运行网站所需的模型和控制器 现在我正在转向视图 我遇到了一个小困境 我的方法对我来说效果很好 但为了将来的参考 我想知道我所做的是否是一
  • Django 的 CreateView 不保存对象

    我正在练习 Django 的通用视图 特别是ModelForms 这些是我的观点和模型 模型 py class Post models Model user models ForeignKey User post title models
  • 为什么我使用kill -0 (|pid) 得到不同的结果

    我正在编写一个脚本 该脚本将启动另一个进程 并在一段时间后杀死它 如果它没有自行退出 自从开始这件事以来 我开始意识到timeout命令是执行此操作的正确方法 但我仍然对为什么我的方法之一失败感到困惑 这就是我正在尝试的 bin bash
  • JS 在循环内等待回调完成

    我的 Node js 应用程序中有一个 for 循环 在此循环内 每次迭代都可以执行 mysql 查询 并非总是如此 具体取决于情况 查询是异步的 我在成功回调中得到结果 但我需要 for 循环的每次迭代都等待回调完成 如果需要 funct
  • Mongodb TTL 使文档提前过期

    我正在尝试将文档插入 Mongo 数据库并让它在预定时间后自动过期 到目前为止 我的文档已被插入 但总是会在 0 60 秒内从数据库中删除 即使我将 expireAfterSeconds 设置得更长 我知道 mongodb 大约每 60 秒
  • 具有重叠时隙的会议调度算法

    我想做类似的事情预约调度算法 N个人 N个忙闲时段 约束满足 https stackoverflow com questions 11143439 appointment scheduling algorithm n people with
  • 在Python中将秒转换为周-天-小时-分钟-秒

    我正在尝试编写一个 输入秒数 的 Python 脚本 并在周 天 小时 分钟和秒内获得结果 这是我所拥有的 但我没有得到正确的答案 我究竟做错了什么 seconds raw input Enter the number of seconds
  • Firebase 上 iOS 的 Flutter 集成测试?

    是否可以在 Firebase 上运行 Flutter 集成测试 这方面的信息似乎相互矛盾 一些消息来源说这是可能的 但文档 https pub dev packages integration test firebase test lab
  • 将 wpf 图像控件保存到文件的最简单方法

    我的 wpf 应用程序中有一个 Image 控件 里面有一个大图像 但控件本身只有 60x150 这意味着它只显示该图像的特定部分 将可见部分保存到文件的最简单方法是什么 感谢您的帮助 编辑 我最终使用了找到的代码here http nui
  • Fabric - 在所有任务完成之前和之后在本地运行命令

    我试图在我的结构脚本中宣布部署开始和结束 感觉这应该很容易 但对于我来说 我不知道该怎么做 env hosts www1 www2 www3 www4 def announce start code to connect to irc se
  • 关于从 VBScript 返回值到 .NET 的问题

    我正在尝试设置一个能够从 NET 运行 VBScript 文件的应用程序 请参阅here https stackoverflow com questions 2886155 how do i get back results running
  • 如何在discord.py 中设置可选参数?

    我尝试过在线研究 但没有其他问题能够帮助我解决问题 这是我的场景 我正在discord py 中创建静音命令 我希望时间是可选的 但如果未指定时间 我希望该参数成为原因的一部分 澄清我的意思 client command commands
  • 如何将应用程序日志动态输出到TextArea和文本文件?

    我有一个 javaFX 应用程序 但遇到日志记录问题 我不知道如何将日志动态输出到 JavaFX 中的 TextArea 并同时输出到文件 对于文件我有这样的设置 handlers java util logging FileHandler
  • jQuery 语法 - 何时使用 $(美元)与 jQuery [重复]

    这个问题在这里已经有答案了 这两者有什么区别 SPANID html Some Text jQuery SPANID html Some Text 它是原型还是 jQuery 他们都做同样的事情 大多数库使用 作为访问库内函数的更短方式 j
  • 设置标签属性并使用 nokogiri builder (ruby) 将纯文本内容添加到标签

    我正在尝试使用 Nokogiri 和一些标签构建 XML 这些标签内既有属性又有纯文本 所以我试图做到这一点