Я хочу преобразовать строку Java, содержащую xml, в объект документа 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:
System.out.println(newDoc.getDocumentElement().getElementsByTagName("channel").item(0));
Я получил в качестве вывода: [канал: ноль]
Таким образом, у меня есть объект, иначе он будет генерировать исключения из нулевого указателя, но он не содержит никаких значений внутри!
Содержание константы таково:
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>";
У кого-нибудь есть решение или подсказка?