gpt4 book ai didi

java - 从单个 DOM 元素获取原始 xml 代码

转载 作者:行者123 更新时间:2023-11-29 03:05:32 24 4
gpt4 key购买 nike

我目前正在尝试使用 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>

目标是让第一个 book 元素有这个:

    <book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>

我正在查看 Element 方法,但找不到对此有用的方法。

谢谢。

最佳答案

W3C DOM 没有像某些替代 Java XML API 提供的方便的“toXML”,您需要使用 javax.xml.transform API 或 org. w3c.dom.ls.LSSerializer。假设变量 doc 包含 DOM Document,您可以获得 LSSerializer 的实例,如下所示:

// import org.w3c.dom.ls.*;

DOMImplementationLS ls = (DOMImplementationLS)doc.getImplementation();
LSSerializer ser = ls.createLSSerializer();

一旦你有了其中之一,你就可以将该文档中的任何 Node 序列化为 XML 字符串,使用

String xml = ser.writeToString(node);

关于java - 从单个 DOM 元素获取原始 xml 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32378177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com