我正在尝试更改indl文件。 indl文件是由Adobe Indesign创建的文件,用于保存文档的结构,基本上是XML。我想使用Nokogiri找到一些选定的XML节点并用我的文本替换文本,然后将xml保存到另一个文件。
XML当然很奇怪:我找到一些文档来检索带有Nokogiri更改文本的HTML标记,但我不知道如何管理这样的XML片段:
<cflo>
<txsr prst="o_u5084" crst="o_u5085" trak="D_10">
<pcnt>c_tEST</pcnt>
</txsr>
<txsr prst="o_u5086" crst="o_u5c" trak="D_20">
<pcnt>c_Titolo titolo titolo</pcnt>
</txsr>
<cflo>
基本上我需要查找prst
和crst
属性的组合,并替换pcnt
节点内的内容。
我试试这个
@doc.xpath("//txsr[prst='o_u5086' and crst='o_u5085']")
但我不知道如何更改pcnt
节点内的文本。
答案 0 :(得分:0)
这不是正确的XPath。正确的XPath将如下所示:
@doc.xpath("//txsr[@prst='o_u5086'][@crst='o_u5085']")
您应该从集合中获取第一个节点,并使用inner_html=
方法替换文本值。
可在此处找到完整代码:https://gist.github.com/kaineer/7673698