是否有用于解析 Acrobat XFDF 的 Nokogiri 示例代码?

发布于 2024-11-06 02:40:07 字数 65 浏览 4 评论 0原文

我正在寻找一个 ruby​​ 代码片段,该片段显示如何使用 Nokogiri 解析 Acrobat XFDF 数据。

I am looking for a ruby code snippet that shows use of Nokogiri to parse Acrobat XFDF data.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

白昼 2024-11-13 02:40:07

它与解析任何其他 XML 没有什么不同:

require 'nokogiri'

xfdf = '<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
  <f href="Demo PDF Form.pdf"/>
  <fields>
    <field name="Date of Birth">
      <value>01-01-1960</value>
    </field>
    <field name="Your Name">
      <value>Mr. Customer</value>
    </field>
  </fields>
  <ids original="FEBDB19E0CD32274C16CE13DCF244AD2" modified="5BE74DD4F607B7409DC03D600E466E12"/>
</xfdf>
'

doc = Nokogiri::XML(xfdf)
doc.at('//xmlns:f')['href'] # => "Demo PDF Form.pdf"
doc.at('//xmlns:field[@name="Date of Birth"]').text # => "\n      01-01-1960\n    "
doc.at('//xmlns:field[@name="Your Name"]').text # => "\n      Mr. Customer\n    "

它使用 XML 命名空间,因此您必须在 xpath 中尊重这一点,或者通过告诉 Nokogiri 忽略它们来处理它,但这在 XML 中很常见。

It's no different than parsing any other XML:

require 'nokogiri'

xfdf = '<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
  <f href="Demo PDF Form.pdf"/>
  <fields>
    <field name="Date of Birth">
      <value>01-01-1960</value>
    </field>
    <field name="Your Name">
      <value>Mr. Customer</value>
    </field>
  </fields>
  <ids original="FEBDB19E0CD32274C16CE13DCF244AD2" modified="5BE74DD4F607B7409DC03D600E466E12"/>
</xfdf>
'

doc = Nokogiri::XML(xfdf)
doc.at('//xmlns:f')['href'] # => "Demo PDF Form.pdf"
doc.at('//xmlns:field[@name="Date of Birth"]').text # => "\n      01-01-1960\n    "
doc.at('//xmlns:field[@name="Your Name"]').text # => "\n      Mr. Customer\n    "

It uses a XML namespace, so you have to honor that in the xpaths, or deal with it by telling Nokogiri to ignore them, but this is common in XML.

一个人的旅程 2024-11-13 02:40:07

您可以使用 [nguyen][1] gem 进行解析工作

xfdf = Nguyen::Xfdf.new(:key => 'value', :other_key => 'other value')

# use to_xfdf if you just want the XFDF data, without writing it to a file puts   
xfdf.to_xfdf

# write xfdf file
xfdf.save_to('path/to/file.xfdf')

You can use [nguyen][1] gem to do parsing job

xfdf = Nguyen::Xfdf.new(:key => 'value', :other_key => 'other value')

# use to_xfdf if you just want the XFDF data, without writing it to a file puts   
xfdf.to_xfdf

# write xfdf file
xfdf.save_to('path/to/file.xfdf')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文