gpt4 book ai didi

java - 读取和写入 xml 字符串的最简单且最简单的 java API 是什么?

转载 作者:行者123 更新时间:2023-12-02 00:41:57 25 4
gpt4 key购买 nike

大家好,我读了其他类似问题的一些答案,但没有得到好的答案......

所以我想知道一些好的 api 来读取和写入 xml 字符串。为了阅读,我正在考虑使用 SAX,我已经开始编写一个带有状态机的 xmlhandler 来处理它,但处理程序开始变得很大......方法上

 public void startElement(String uri, String name, String n, Attributes at)

我有一个无限的 else if 树,这是正常的吗?

要编写 xml 字符串,我还不知道...

感谢您的宝贵时间

最佳答案

答案取决于您想对 XML 执行什么操作。如果您想创建 Java 对象,请使用 JAXB,正如 Matt Ball 建议的那样。

如果您想根据 XML 元素的名称(或其属性的内容或其他内容)执行某些操作(即执行某些代码),那么很可能您最终会得到无穷无尽的 if-else 。为什么?因为您要根据 XML 中的内容对代码进行分支。

您可以通过以下方式绕过它:

  • 将每个分支放入一个类(或方法)中,并使用类加载器(或反射)构造它的实例(或调用此方法);
  • 如果有一组有限的元素,您必须响应,有 HashMap<String, Method>并在解析之前填充它,然后简单地调用哈希为您提供的方法;这意味着使用反射。

这两种解决方案都会对速度产生负面影响,但(在我看来)极大地提高了代码的可读性、可重用性和理解性。

您可能会考虑使用 DOM 而不是 SAX。缺点:将整个XML加载到内存中;优点:您可以很好地浏览元素树,并且始终拥有任何元素的上下文。

至于编写 XML:只需编写非常简单的 XML 文档,它们与常规文本文件没有什么不同(打开流、写入流、关闭流)。不过,通常最好先对 DOM 树进行操作,然后保存;有很多关于它的教程。

如果您的软件会经常使用,并且您非常依赖 XML 文档的结构,并且希望避免因元素放错位置而导致严重的崩溃,请确保有一个架构 (XSD) 或 DTD并验证您加载的每个 XML 文档。这很有帮助;)

关于java - 读取和写入 xml 字符串的最简单且最简单的 java API 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6111623/

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