Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java内置XML_Java_Xml - Fatal编程技术网

Java内置XML

Java内置XML,java,xml,Java,Xml,Java是否有用于生成和解析文档的内置XML库?如果没有,我应该使用哪一个第三方 您可以看看javax.xml包,它包含了在Java中处理xml文档所需的一切…是的。Java包含javax.xml库。你可以在Sun's检验一些样品 但是,我个人喜欢使用。javax.xml包包含Java的原生xml解决方案,它实际上是Java的一个特殊版本。您可以按自己的要求使用它,但是使用第三方库(如)会使整个过程变得更加简单。Sun Java运行时附带Xerces和Xalan实现,它们提供了解析XML(通过D

Java是否有用于生成和解析文档的内置XML库?如果没有,我应该使用哪一个第三方

您可以看看javax.xml包,它包含了在Java中处理xml文档所需的一切…

是的。Java包含
javax.xml
库。你可以在Sun's检验一些样品


但是,我个人喜欢使用。

javax.xml
包包含Java的原生xml解决方案,它实际上是Java的一个特殊版本。您可以按自己的要求使用它,但是使用第三方库(如)会使整个过程变得更加简单。

Sun Java运行时附带Xerces和Xalan实现,它们提供了解析XML(通过DOM和SAX接口)的能力,还可以执行XSL转换和执行XPath查询

但是,最好使用API处理XML,因为JAXP允许您不必担心所使用的底层实现(Xerces或Crimson或任何其他)。当您使用JAXP时,JRE将在运行时使用它可以找到的服务提供者来执行所需的操作。如前所述,Xerces/Xalan将被使用,因为它是随Sun JRE提供的(但不是其他),所以您不必下载并安装特定的提供商(例如,Xerces或Crimson的不同版本)

可以在中找到基本的JAXP教程(它来自J2EE教程,但会有所帮助)

请注意,Sun JRE提供的Xerces/Xalan实现在org.apache.Xerces.*或org.apache.Xalan.*包中找不到。相反,它们将出现在内部com.sun.org.apache.xerces.*和com.sun.org.apache.xalan.*包中


顺便说一句,JDOM不是一个XML解析器——它将使用提供给它的解析器,以便为您提供一个更容易使用的抽象。在javax.xml包中有两个选项:DOM在内存中构建文档,SAX是一种基于事件的方法

您可能还想看看JDOM,它是一个第三方库,提供了两者的结合,并且可以更容易地使用。

看看这越来越成为XML处理的“标准”方式。使用Java注释简化编程模型。该参考提供了用于读取和写入XML的示例代码。

是标准库JavaSE的一部分。JAXP允许您根据标准接口编写代码,并允许您在需要时选择解析器实现

用于XML处理的Java API,或 简而言之,JAXP支持应用程序 解析和转换XML文档 使用独立于 特定XML处理器 实施JAXP还提供了一个 可插拔功能,可 应用程序之间可以轻松切换 特定XML处理器 实现


Java确实附带了大量的包和类来处理XML。这些是标准版JDK的一部分,位于javax.xml包下

除了读取XML并使用or编写它之外,这些包还执行对象编组和解编组、处理和web服务处理。我建议您在Sun的优秀教程中在线阅读更多关于这些的内容。

您可以使用StAX(XML流式API)


StAx经过优化以处理大型xml文件,而不会导致OOM(内存不足)问题:)

如上所述。。。Java的SDK现在附带Xerces和Xalan。Xalan只实现XSLT API的1.0版,所以如果您想要2.0版,您应该看看Michael Kay的Saxon。

我不能告诉您要使用哪一个(指定的需求很少,而且没有) 有十几个库,但我会认真考虑XOM()、

由Eliotte Rusty Harold编写,它在XML方面相当完整 规格,一般都很好。我发现它很容易使用。见
以上链接是Harold对其他解决方案的动机和批评。

javax.xml似乎只是定义xml库的接口,实际上没有什么用处。Java的xml框架太多了。也许你可以告诉我们你需要它做什么,这将帮助我们找到最好的框架。只需提及一些JavaXML工具/框架:XMLBeans、Castor、JiXB、JAXB、StAX、SAX、DOM和XPAth。一个很好的起点是查看JAXB或wikipedia文章,这里的大多数答案是混合实现、API和库。你想要库答案(Xalan、Xerces、Saxon、JDom)还是api(JAXB)或实现(DOM、SAX、StAX)?@dacracot:如果你想分门别类,DOM和SAX不是实现。(证据:“org.w3c.dom.*”和“org.xml.sax”包主要是接口。)如果要区分库和实现,需要解释它们之间的区别。dom和sax是实现。JDom是一个具有自己的API和独特的类似DOM的API的库。实际上,DOM和SAX是编程接口,而不是实现。Xerces和Xalan是库。