Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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

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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.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
基于标准dom的javaxml库_Java_Xml_Dom - Fatal编程技术网

基于标准dom的javaxml库

基于标准dom的javaxml库,java,xml,dom,Java,Xml,Dom,由于从xml元素获取文本内容需要15行代码(参见oracle官方教程),因此引用的教程本身建议,对于许多需要使用第三方工具的人: “正如您所见,当您使用DOM时,即使是从节点获取文本这样的简单操作也需要一些编程。因此,如果您的程序处理简单的数据结构,那么JDOM、dom4j甚至1.4正则表达式包(java.util.regex)可能更适合您的需要” 我已经尝试了建议的工具,它们相当容易使用和完成,但它们需要对其开发的“生命力”进行评估。而且这种评价从来都不明显。 因此,我的问题是: 1) 是否有

由于从xml元素获取文本内容需要15行代码(参见oracle官方教程),因此引用的教程本身建议,对于许多需要使用第三方工具的人:

“正如您所见,当您使用DOM时,即使是从节点获取文本这样的简单操作也需要一些编程。因此,如果您的程序处理简单的数据结构,那么JDOM、dom4j甚至1.4正则表达式包(java.util.regex)可能更适合您的需要”

我已经尝试了建议的工具,它们相当容易使用和完成,但它们需要对其开发的“生命力”进行评估
。而且这种评价从来都不明显。
因此,我的问题是:

1) 是否有一个在标准dom之上构建的库可以简化xml工作?它将以更高的可用性确保官方图书馆的健壮性和最新性

2) 在oracle的计划中,这一“可用性”的缺失是否会以其他方式得到解决(可能是一些新的jsr?)呢?

XStream很好而且易于使用

你几乎可以用注解做任何事情


如果需要从XML元素获取文本内容,请使用XPath:

    String xml = "<root><p>This is some text</p><p>And this is more text</p></root>";
    XPath xpath = XPathFactory.newInstance().newXPath();
    String text = xpath.evaluate("/root/p[1]", new InputSource(
            new StringReader(xml)));
    System.out.println(text);
stringxml=“这是一些文本

,这是更多的文本

”; XPath=XPathFactory.newInstance().newXPath(); String text=xpath.evaluate(“/root/p[1]”,新输入源( 新的StringReader(xml)); System.out.println(文本);
如果您想将Java对象映射到XML和XML,请使用JAXB

XPath(1.0)和JAXB都是JDK的一部分,也可以用更高版本替换

但是,如果您试图用正则表达式解析XML,您就错了

可能正是您要查找的库:

  • 它包装了标准的JavaDOM
  • 它很轻
  • 它的灵感来自,这是一种经过验证的简化DOM操作的方法
获取元素的文本内容的示例:

$(document).find("element").text();
$(document).xpath("//element[3]").text();

它看起来像XmlBeans,但由内而外。或者它也可以通过xsd生成类吗?它不能。事实上,它推荐XmlBeans来做这项工作。我得到了这个建议,我将看一看xstream,不过我要重新表述这个问题“我们能否确保第三十方工具的合理长寿和及时更新?是否有人试图简化标准方式的使用,因为oracle可能会对其进行维护和及时更新,并修复错误?没有人能够确保第三方工具的更新,但我在一个大型项目中使用XStream,效果很好。最后一次更新是2011年8月11日。所以它正在更新中。注意:我领导一个JAXB实现(EclipseLink MOXy),但我觉得比较公平。XStream在2011年8月发布了1.4/1.4.1版,之前的1.3.1版是在2008年12月发布的:XPath和javax.xml.XPathAPI的版本为+1。JAXB实现包含在JavaSE6中。因为JAXB是一个规范(JSR-222),所以还有其他的实现可用:Metro、EclipseLink MOXy、Apache JaxMe等@Blaise:我们已经在其他问题中明确了这一点():当您不需要绑定绑定技术时,会迫使您采用复杂的方法。在绑定领域,有好的产品(我认为是MOXy)它们的核心是JAXB标准。这在DOM领域是不会发生的,因为唯一的标准是不面向生产力的w3c标准。在这几年里,绑定产品已经迈出了一大步,我想知道JAXP保护伞下的技术是否也已经成熟,可以“重新思考”。@AgostinoX-DOM在今天的Java中肯定扮演着一个角色。在您希望从元素中选择文本的用例中,您可以使用DOMAPI来实现这一点,但是XPath(javax.xml.XPath)API是更好的选择。这些API可以将DOM作为输入,但也可以通过SAX、StAX和JAXB作用于XML表示提供程序。@四十二:从您的答案开始,我开始使用java XPath API(在使用dom4j集成XPath支持之前)。我想读一些关于XPathAPI的官方文章,但令人难以置信的是,标准java(ex-sun)教程没有讨论JavaXPathAPI,而是讨论XPath本身!我贴了一个问题