【问题标题】:What is the best way to modify a few fields in an XML using Java使用 Java 修改 XML 中的几个字段的最佳方法是什么
【发布时间】:2012-06-20 09:14:04
【问题描述】:

我有一个包含大约 300 个元素的大型 XML。我需要使用 Java 修改此 xml 中的 2 或 3 个元素。我不想进行传统的编组和解组,因为它涉及整个 XML 的解析。 XPath/XSLT 如何操作?我知道我可以轻松读取数据,但我需要修改相同的数据并将其放回相同的 XML 中。这里主要关注的是性能。请指教

【问题讨论】:

    标签: java xml parsing xslt xpath


    【解决方案1】:

    使用 XPath/XSLT 意味着在开始转换之前将整个文档加载到内存中。如果这是一个问题(例如文档太大而无法存储),那么您需要使用另一种解决方案。也就是说,300 个元素听起来并不是很“大”。

    另一种方法是使用 StAX 解析器来查找和更改目标元素。看看Is there a way to build a StAX filter chain?

    【讨论】:

      【解决方案2】:

      听起来 XSLT 对于这个问题来说可能太重了。你想稍微重写一个文件。如果您可以轻松描述每个更改(例如,您想删除“bar”元素上的“foo”属性),请考虑应用正则表达式替换。像这样的:

      String fileContents = ...

      fileContents.replaceAll("<bar foo=\"\\w+\"", "<bar");

      【讨论】:

        猜你喜欢
        • 2011-06-08
        • 2016-03-30
        • 1970-01-01
        • 2010-10-28
        • 1970-01-01
        • 1970-01-01
        • 2014-03-28
        • 1970-01-01
        • 2011-02-08
        相关资源
        最近更新 更多