gpt4 book ai didi

ruby - 使用 Nokogiri 添加格式化中断

转载 作者:太空宇宙 更新时间:2023-11-03 16:32:25 25 4
gpt4 key购买 nike

我正在尝试向现有的 XML 文档中添加一些元素。以下代码成功添加了所需的节点和内容,但它没有格式化插入的元素。所有添加的元素都在一行中结束,而不是在每个元素之后使用换行符和缩进。

关于如何添加这种格式有什么建议吗?

代码是:

doc.xpath("//tei:div[@xml:id='versionlog']", {"tei" => "http://www.tei-c.org/ns/1.0"}).each do |node|
new_entry = Nokogiri::XML::Node.new "div", doc
new_entry["xml:id"] = "v_#{ed_no}"
head = Nokogiri::XML::Node.new "head", doc
head.content = "Description of changes for #{ed_no}"
new_entry.add_child(head)
para = Nokogiri::XML::Node.new "p", doc
para.content = "#{version_description}"
new_entry.add_child(para)
node.add_child(new_entry)
end

最佳答案

为什么 XML 不在一行上很重要?它具有“ pretty-print ”的 XML 纯粹是装饰性的,并且在重新加载 XML 时 XML 规范或解析器不需要。就个人而言,为了提高传输速度和减小磁盘大小,我建议不要格式化,但 YMMV。

您可以通过 XML 美化器运行 XML,或者按照以下方式使用 Nokogiri 玩游戏:

new_entry.add_child(para.to_xml + "\n")

换行符将作为标记之间的文本节点添加,但它是良性的,对 XML 传递其有效负载的能力并不重要。

如果您坚持,“How do I pretty-print HTML with Nokogiri?”描述了如何到达那里。

关于ruby - 使用 Nokogiri 添加格式化中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13531585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com