我目前正在尝试使用带有Java语言的DOM获取xml的一部分。 例如,我希望能够将String元素(标签)的原始代码作为String,并将其作为子节点。
示例:
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>
目标是为第一本书元素:
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
我正在寻找Element方法,我找不到一些对它有用的方法。
谢谢。
答案 0 :(得分:3)
W3C DOM没有方便的&#34; toXML&#34;与某些替代Java XML API一样,您需要使用javax.xml.transform
API或org.w3c.dom.ls.LSSerializer
。假设包含DOM doc
的变量Document
,您可以像这样获取LSSerializer
的实例:
// import org.w3c.dom.ls.*;
DOMImplementationLS ls = (DOMImplementationLS)doc.getImplementation();
LSSerializer ser = ls.createLSSerializer();
如果您有其中一个,那么您可以使用
将该文档中的任何Node
序列化为XML字符串
String xml = ser.writeToString(node);
答案 1 :(得分:1)
查看xpath。虽然通常在HTML的上下文中使用xpath,但它代表XML路径语言,请尝试以下操作。
//书[含有(@Category,&#39;烹调&#39)]