gpt4 book ai didi

Java修改XML

转载 作者:行者123 更新时间:2023-12-01 11:24:35 34 4
gpt4 key购买 nike

我想用 Java读取 XML 文件,然后用新值更新该文件中的某些元素。我的文件>200mb,性能很重要,所以不能使用DOM模型。

我认为 StaX 解析器是解决方案,但没有关于使用 Java StaX 读取然后将 XML 写回同一文件的像样文献。

(作为引用,我一直在使用 the java tutorialthis helpful tutorial 来获取到目前为止我所拥有的内容)

我正在使用 Java 7,但自从……很久以前以来,XML 解析 API 似乎没有任何更新。所以这可能不相关。

目前我有这个:

public static String readValueFromXML(final File xmlFile, final String value) throws FileNotFoundException, XMLStreamException
{
XMLEventReader reader = new XMLInputFactory.newFactory().createXMLEventReader(new FileReader(xmlFile));

String found = "";
boolean read = false;

while (reader.hasNext())
{
XMLEvent event = reader.nextEvent();
if (event.isStartElement() &&
event.asStartElement().getName().getLocalPart().equals(value))
{
read = true;
}

if (event.isCharacters() && read)
{
found = event.asCharacters().getData();
break;
}
}

return found;
}

它将读取 XMLFile 并返回所选元素的值。但是,我有另一种方法 updateXMLFile(final File xmlFile, Final String value) 我想与此方法结合使用。

所以我的问题有三个:

  1. 是否有用于编辑 XML 的 StaX 实现
  2. XPath 有帮助吗?可以在不将我的文件转换为文档的情况下使用它吗?
  3. (更笼统地说)为什么 Java 没有更好的 XML API?

最佳答案

您可能需要查看两件事。第一种方法是使用 JAXB 将 XML 绑定(bind)到 POJO,然后您可以按照自己的方式使用 POJO,并在需要时将结构序列化回 XML。

第二个是XML的JDBC驱动程序,有几个收费的,不确定是否有开源的。根据我的经验,JAXB 是更好的选择。如果 XML 文件太大而无法使用 JAXB 有效处理,我认为您需要考虑使用数据库来替代 XML 文件。

关于Java修改XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30941397/

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