读写xml字符串最简单的java API是什么?
大家好,我读了一些其他问题的答案,但没有得到一个好的答案 所以我想知道一些读写xml字符串的好api。阅读本文,我正在考虑使用SAX,我已经开始编写一个带有状态机的xmlhandler来处理它,但是这个处理程序开始变大。。。 论方法读写xml字符串最简单的java API是什么?,java,xml,xml-parsing,saxparser,Java,Xml,Xml Parsing,Saxparser,大家好,我读了一些其他问题的答案,但没有得到一个好的答案 所以我想知道一些读写xml字符串的好api。阅读本文,我正在考虑使用SAX,我已经开始编写一个带有状态机的xmlhandler来处理它,但是这个处理程序开始变大。。。 论方法 public void startElement(String uri, String name, String n, Attributes at) 我有一棵无限的else if树,这是正常的吗 要编写xml字符串,我还不知道 感谢您抽出时间答案取决于您想对XM
public void startElement(String uri, String name, String n, Attributes at)
我有一棵无限的else if树,这是正常的吗
要编写xml字符串,我还不知道
感谢您抽出时间答案取决于您想对XML做什么。如果要创建Java对象,请按照Matt Ball的建议使用JAXB 如果您想根据XML元素的名称(或其属性的内容,或其他任何内容)执行某些操作(即执行一些代码),那么很可能最终会遇到无休止的
If-else
。为什么?因为您正在根据XML中的内容对代码进行分支
您可以通过以下方式绕过它:
- 将每个分支放在类(或方法)中,并使用类装入器(或反射)构造它的实例(或调用此方法)李>
- 如果您必须响应有限的元素集,拥有一个
,并在解析之前填充它,然后简单地调用hash提供给您的方法;这意味着使用反射HashMap
你可以考虑使用DOM而不是SAX。缺点:将整个XML加载到内存中;优点:您可以很好地浏览元素树,并且始终具有任何元素的上下文
至于编写XML:您可以编写非常简单的XML文档,它们与常规文本文件(打开流、写入流、关闭流)没有区别。但是,通常最好对DOM树进行操作,然后保存它;有很多关于它的教程如果您的软件将经常被使用,并且您非常依赖XML文档的结构,并且希望避免由于元素放置错误而导致的严重崩溃,那么请确保为其提供一个模式(XSD)或DTD,并对加载的每个XML文档进行验证。这很有帮助;) 答案取决于您想对XML做什么。如果要创建Java对象,请按照Matt Ball的建议使用JAXB 如果您想根据XML元素的名称(或其属性的内容,或其他任何内容)执行某些操作(即执行一些代码),那么很可能最终会遇到无休止的
If-else
。为什么?因为您正在根据XML中的内容对代码进行分支
您可以通过以下方式绕过它:
- 将每个分支放在类(或方法)中,并使用类装入器(或反射)构造它的实例(或调用此方法)李>
- 如果您必须响应有限的元素集,拥有一个
,并在解析之前填充它,然后简单地调用hash提供给您的方法;这意味着使用反射HashMap
你可以考虑使用DOM而不是SAX。缺点:将整个XML加载到内存中;优点:您可以很好地浏览元素树,并且始终具有任何元素的上下文
至于编写XML:您可以编写非常简单的XML文档,它们与常规文本文件(打开流、写入流、关闭流)没有区别。但是,通常最好对DOM树进行操作,然后保存它;有很多关于它的教程如果您的软件将经常被使用,并且您非常依赖XML文档的结构,并且希望避免由于元素放置错误而导致的严重崩溃,那么请确保为其提供一个模式(XSD)或DTD,并对加载的每个XML文档进行验证。这很有帮助;) 您想用XML做什么?如果您试图将XML转换为Java对象(或反之亦然),则只需使用XML,而无需担心解析XML。要编写XML,请参见此处:是否可以显示无限的else If树?@Andreas_D:可能需要无限的空间来显示;-)您想用XML做什么的可能重复?如果您试图将XML转换为Java对象(或反之亦然),则只需使用XML,而无需担心解析XML。要编写XML,请参见此处:是否可以显示无限的else If树?@Andreas_D:可能需要无限的空间来显示;-)可能重复的