【问题标题】:Translating XML to protobuf将 XML 转换为 protobuf
【发布时间】:2011-10-19 19:10:15
【问题描述】:

我正在编写一个 Java 应用程序,该应用程序将受模式限制的 XML 作为输入并需要将其转换为 protbuf。无需进行任何处理;我只需要从 XML 中获取一些字段并使用它们来创建一个 protobuf。

我希望我可以使用 JIBX 将 XML 直接映射到我的 protobuf 的 Builder 类,从而消除任何中间工作。但是,JIBX 要求正在构建的对象的设置方法返回 void (http://jibx.sourceforge.net/details/binding-attributes.html)。 Protobuf 生成的 Builder 类遵循 builder 设计模式,并且不会从其 setter 方法返回 void。

有没有办法绕过这个问题并让 JIBX 直接将 XML 转换为 protobuf 类?也许我应该考虑使用另一种 XML 解析工具*?还是我必须写一些中间代码来方便 XML 和 protobuf 之间的转换?

*注意:我收到的输入 XML 非常大,我只需要其中的几个字段。这减少了我使用的一些较重的 XML 解析工具。

【问题讨论】:

  • 必须是java吗? protobuf-net 类通常同时对 XmlSerializer 和 protobuf-net 非常满意
  • 不幸的是,该项目必须在java中。我对使用哪些工具来完成工作有一定的灵活性,但仅此而已。
  • XSL 转换怎么样?如果您只需要提取一些字段并创建一个 protobuf 文件,则样式表可能很容易编写。
  • 我最终对输入 xml 执行了 XSL 转换,并通过(小型)自定义 SAX 解析器提供输出以创建 protobuf。感谢您的帮助!
  • @Josh:您可以回答自己的问题并接受它。请分享!

标签: xml protocol-buffers jibx


【解决方案1】:

我最终对输入 xml 执行了 XSL 转换,并通过(小型)自定义 SAX 解析器提供输出以创建 protobuf。感谢您的帮助!

【讨论】:

  • 我正在寻找相同问题的解决方案。请您发布任何示例
  • 我使用 sax 解析器来获取我需要的字段并构建 protobuf。不幸的是,解决方案并没有什么特别之处。
猜你喜欢
  • 2015-11-18
  • 2013-07-01
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
  • 2018-03-16
  • 2020-04-19
  • 2019-01-06
  • 1970-01-01
相关资源
最近更新 更多