gpt4 book ai didi

java - 无法将 xml 字符串转换为 w3c 文档

转载 作者:行者123 更新时间:2023-11-29 06:03:48 25 4
gpt4 key购买 nike

我想将包含 xml 的 java 字符串转换为 w3c dom 文档对象。

我首先到处搜索,然后在 stackoverflow 上找到了一些很好的例子。但遗憾的是我可以让他们工作!

显然我的代码没有 100% 有效。

它似乎解析了字符串,但节点中没有值。这就是我到目前为止所得到的!

Document newDoc = null;

InputSource is = new InputSource();
is.setCharacterStream(new StringReader(TestFiles.RSS_FEED_FILE_2));

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = null;
builder = factory.newDocumentBuilder();
newDoc = builder.parse(is);

当我之后像这样执行系统输出时:

System.out.println(newDoc.getDocumentElement().getElementsByTagName("channel").item(0)
.getNodeValue());

我在使用这个 sysout 时得到了 null 作为输出:

System.out.println(newDoc.getDocumentElement().getElementsByTagName("channel").item(0));

我得到了输出:[channel: null]

所以我有一个对象,否则它会抛出一些空指针异常,但它内部不包含任何值?!

常量的内容是这样的:

public final static String RSS_FEED_FILE_2 =    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
"<rss version=\"2.0\">\n" +
"<channel>\n" +
"<title>sunday</title>\n" +
"<link>http://www.google.nl</link>\n" +
"<pubDate>2012-02-05 20:58</pubDate>\n" +
"<lastBuildDate>2012-02-08 09:48</lastBuildDate>\n" +
"<description>blabla </description>\n" +
"<item>\n" +
"<title><![CDATA[title]]></title>\n" +
"<link><![CDATA[http://www.google.nl]]></link>\n" +
"<guid><![CDATA[2266610]]></guid>\n" +
"<source><![CDATA[sunday]]></source>\n" +
"<author><![CDATA[me]]></author>\n" +
"<description><![CDATA[blalbalavblabllllll!]]></description>\n" +
"</item>\n" +
"</channel>\n" +
"</rss>";

有没有人有解决方案或提示?

最佳答案

这是一个很常见的问题。 getNodeValue() 的行为取决于 Node 的子类.在 Element 的情况下,getNodeValue()总是返回null(参见中的表格>Node 其他子类行为的javadoc)。

如果您想调试 XML 文档,请考虑使用 getTextContent()

关于java - 无法将 xml 字符串转换为 w3c 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9208858/

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