Java Print XML to console

时间:2018-02-21 09:33:35

标签: java xml

我有这段代码:

import java.net.URL;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;



public class Main {

    private static Document loadTestDocument(String url) throws Exception {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
        return factory.newDocumentBuilder().parse(new URL(url).openStream());
    }

    public static void main(String[] args) throws Exception {
        Document  doc = loadTestDocument("https://www.w3schools.com/xml/note.xml");
        System.out.println(doc.getElementsByTagName("note").item(0).getChildNodes().item(0).getNodeValue());
    }
}

并且就我而言,这应该将节点文本打印到java控制台,但它似乎什么都不打印......没有任何错误或任何错误。 我做错了什么?

4 个答案:

答案 0 :(得分:1)

执行以下操作以获取文本内容

doc.getElementsByTagName("note").item(0).getChildNodes().item(0).getTextContent()

修改 试试这个,有一些空节点。

int i;
 for(i = 0; i < doc.getElementsByTagName("note").item(0).getChildNodes().getLength(); i++){
     System.out.println(doc.getElementsByTagName("note").item(0).getChildNodes().item(i).getTextContent());
 }

答案 1 :(得分:1)

零项是注意。它没有价值。使用上面的代码来打印Tove

System.out.println(doc.getElementsByTagName("note").item(0).getChildNodes().item(1).getTextContent());

答案 2 :(得分:1)

试试这个。

  Document  doc = loadTestDocument("https://www.w3schools.com/xml/note.xml");
  doc.getDocumentElement().normalize();
  Element element =(Element)doc.getElementsByTagName("note").item(0);

  System.out.println(element.getElementsByTagName("to").item(0).getTextContent());
  System.out.println(element.getElementsByTagName("from").item(0).getTextContent());

<强>输出:

托弗

贾尼

答案 3 :(得分:1)

使用另一个api Jsoup,我们可以解析xml并在控制台上将整个xml打印为字符串

使用以下代码段尝试此操作:

org.jsoup.nodes.Document document = Jsoup.parse(new URL("https://www.w3schools.com/xml/note.xml"), 5000);
        System.out.println("XML content : "+document.html());

输出:

<note> 
 <to>
  Tove
 </to> 
 <from>
  Jani
 </from> 
 <heading>
  Reminder
 </heading> 
 <body>
  Don't forget me this weekend!
 </body> 
</note>