将XML转换为protobuf

3
我正在编写一个Java应用程序,它以模式绑定的XML作为输入,并需要将其翻译成protobuf。没有需要处理的内容; 我只需要从XML中获取一些字段并使用它们来创建protobuf。
我希望我可以使用JIBX直接将XML映射到我的protobuf的Builder类,从而消除任何中间工作。但是,JIBX要求正在构建的对象的set方法返回void (http://jibx.sourceforge.net/details/binding-attributes.html)。Protobuf生成的Builder类遵循构建器设计模式,并且不会从其setter方法返回void。
有没有办法规避这个问题,并使JIBX直接将XML转换为protobuf类?也许我应该考虑使用另一个XML解析工具*?或者我必须编写一些中间代码来促进XML和protobuf之间的转换?
*注意:我接收的输入XML非常大,我只需要其中的一些字段。这排除了一些较重的XML解析工具。

必须使用Java吗?protobuf-net类通常同时与XmlSerializer和protobuf-net非常兼容。 - undefined
很不幸,这个项目必须使用Java。在完成工作的工具选择上我有一些灵活性,但也仅限于此。 - undefined
1
如何进行XSL转换?如果你只需要提取一些字段并创建一个protobuf文件,那么样式表可能非常容易编写。 - undefined
我最终对输入的 XML 进行了 XSL 转换,并通过一个(小型)自定义 SAX 解析器将输出传递以创建 protobuf。谢谢你的帮助! - undefined
@Josh:你可以回答自己的问题并接受它。请分享! - undefined
1个回答

2

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


我正在寻找相同问题的解决方案。你能否提供一个示例来做到这一点? - undefined
我使用了一个SAX解析器来抓取我需要的字段并构建protobuf。不幸的是,这个解决方案并没有什么特别之处。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接