【问题标题】:XSLT or JAXB which one to useXSLT 或 JAXB 使用哪一个
【发布时间】:2012-01-27 10:19:14
【问题描述】:

我想将一个 XML 转换为另一个 xml。最好的方法是什么。我在网上搜索,发现我可以使用 XSLT 或 JAXB 来做到这一点。任何人都可以帮助找到最佳做法。

【问题讨论】:

    标签: java xslt jaxb


    【解决方案1】:

    如果您尝试在 JAXB 中执行此操作,您会将 XML 转换为 Java 对象,然后再转换回 XML。如果您真的想利用 Java 对象,这可能很有用,但如果您只是想要 XML-to-XML,那么中间有一些非 XML 的东西是没有意义的。您尚未描述转换,但在大多数情况下,XSLT 将是完成这项工作的正确工具。唯一的缺点是有一个学习曲线:它可能与您熟悉的编程或脚本语言有很大不同,它是基于规则和声明性的。在开始编码之前花一天时间阅读一本好书,这样你就更有可能了解自己在做什么。

    【讨论】:

    • 让我们说如果在 xml 父母有孩子。所以我想提取孩子并用父母+孩子替换父母(具有不同子ID的新父母)
    • @bhaskaragr29 - 这正是 XSLT 旨在简化的事情类型。
    【解决方案2】:

    如果您想将 Java 类绑定到 XML,则使用 JAXB,反之亦然。如果你只是想转换 XML -> XML,那么 XSLT 是最好的选择。

    Google for JAXP(用于 XML 处理的 Java API),特别是 TransformerFactory-Class 应该为您提供一个很好的起点。

    【讨论】:

      【解决方案3】:

      在 Java 中的 XSLT 上阅读此内容:www.oreilly.com/catalog/javaxslt/chapter/ch05.html

      JAXB 用于 XML 绑定(即将您的类序列化为 XML)。

      【讨论】:

        【解决方案4】:

        根据我的经验,xslt 可能非常慢。如果文件很小,请尝试 dom 解析器,否则请尝试 sax 解析器。

        【讨论】:

        • 没有理由让 XSLT 变慢,除非它写得不好。大多数 XSLT 转换都以用于解析输入和序列化输出的时间为主,无论转换是用哪种语言编写的,这些都是您产生的成本。
        猜你喜欢
        • 2013-05-26
        • 2011-03-06
        • 1970-01-01
        • 2010-11-23
        • 1970-01-01
        • 2013-11-28
        • 2011-06-12
        • 2010-09-30
        • 2015-12-03
        相关资源
        最近更新 更多