Nei*_*eil 1 java xml parsing dom
我目前正在尝试使用 DOM 和 Java 语言获取 xml 的一部分。例如,我希望能够将 XML 元素(标签)及其子节点的原始代码作为字符串。
例子 :
XML 文件:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
Run Code Online (Sandbox Code Playgroud)
目标是将其作为第一本书的元素:
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
Run Code Online (Sandbox Code Playgroud)
我正在查看 Element 方法,但找不到对此有用的方法。
谢谢。
W3C DOM 没有像某些替代 Java XML API 提供的方便的“toXML”,您需要使用 APIjavax.xml.transform或org.w3c.dom.ls.LSSerializer. 假设一个变量doc包含 DOM ,您可以获得这样的Document实例:LSSerializer
// import org.w3c.dom.ls.*;
DOMImplementationLS ls = (DOMImplementationLS)doc.getImplementation();
LSSerializer ser = ls.createLSSerializer();
Run Code Online (Sandbox Code Playgroud)
一旦您拥有其中之一,您就可以Node使用该文档将该文档中的任何内容序列化为 XML 字符串
String xml = ser.writeToString(node);
Run Code Online (Sandbox Code Playgroud)