gpt4 book ai didi

java - 使用 StAX 保留 XML 布局(属性顺序、换行符)进行小的更改(例如更改属性)

转载 作者:行者123 更新时间:2023-12-02 03:32:38 25 4
gpt4 key购买 nike

我正在尝试使用 StAX 迭代器 API 替换 SVG 文件中某些属性的值。我使用 XMLEventReader 读取原始文件,检查和修改元素,然后写入 XMLEventWriter

我的原始文件具有以下结构:

<?xml version="1.0" encoding="UTF-8"?>
<!--
...
-->
<!DOCTYPE ...
...
]>
<svg ...

我得到的输出不一样:

<?xml version="1.0"?><!--
...
--><!DOCTYPE ...
...
]><svg ...

如您所见,编码以及注释和文档类型周围的换行符都消失了。

此外,结果文件中所有标签上的所有属性的顺序似乎是随机的。我读过another question我知道不能保证属性顺序,但这对我没有帮助。

这些 SVG 文件位于 Git 下,因此我想尽可能保留它们的纯文本布局。

如何解决这些问题?在我当前的任务中,我可以将属性值替换为纯文本,而不进行任何解析,但我希望有一个解决方案,允许我考虑标签嵌套和类似的事情。

如果 StAX 无法完成,我完全愿意接受不同的方法。我已经尝试过 DOM 方法,但效果更糟。也许有一些 3d 方解析器...

最佳答案

VTD-XML(我是一个开源项目的作者)是一个 java API,它在解析后保留底层字节,同时导出 XML 树的层次结构......这意味着您可以替换原位字节,无需对文档的不相关部分进行任何不必要的修改..甚至直接覆盖字节...零开销

关于java - 使用 StAX 保留 XML 布局(属性顺序、换行符)进行小的更改(例如更改属性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com