2016-03-03 138 views
0

如何從Java中的xml標記中獲取文本? 例如,這是XML文件:從xml標記中獲取數據

<text data="word"/> 

這裏是我的代碼:

DocumentBuilderFactory documentBuilderFactory= DocumentBuilderFactory.newInstance(); 
      DocumentBuilder documentBuilder=documentBuilderFactory.newDocumentBuilder(); 
      Document document=documentBuilder.parse(url); 
      document.normalizeDocument(); 
      NodeList el=document.getElementsByTagName("data"); 
      System.out.println(el.getTextContent()); 
+1

你應該看看[Jsoup(http://jsoup.org/) – anaxin

+0

@anaxin,對不起,編輯我的帖子 – DoctorDo

+0

你的元素的名字不是數據,它是文本,請澄清你的問題。 –

回答

0

您可以使用一個HTML解析器,如Jsoup 下載並將jar文件添加到您的項目中。然後簡單:

String html = "<text data=word />"; 
Document document = Jsoup.parse(html); 
Element element = document.select("text").first(); 
String str = element.attr("data"); 
System.out.println(str); 

如果您有多個<text>標籤,你可以讓他們都這樣

Elements elements = document.select("text"); 
0

使用此

 DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory 
       .newInstance(); 
     DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
     Document doc = docBuilder.parse(new File(filename));//filename=xml filename 
     Element root = (Element) doc.getDocumentElement(); 
     NodeList requestNodeList = root 
       .getElementsByTagName("TALLYREQUEST"); 


     String requestName = null; 
     if (requestNodeList.getLength() > 0) { 
      requestName = requestNodeList.item(0).getTextContent(); 
     } 

現在檢索XML文件的每個節點

 NodeList nodes = root.getElementsByTagName("TALLYMESSAGE"); 

     for (int i = 0; i < nodes.getLength(); i++) { 
      Node tallyMessageNode = nodes.item(i); 
      if (tallyMessageNode.getNodeType() == Node.ELEMENT_NODE) { 
       Common.print(tallyMessageNode.getNodeName()); 
       NodeList tallyMessageNodeList = tallyMessageNode 
         .getChildNodes(); 
       for (int j = 0; j < tallyMessageNodeList.getLength(); j++) { 
        Node subNode = tallyMessageNodeList.item(j); 
        if (subNode.getNodeType() == Node.ELEMENT_NODE) { 
       // code corresponding to your xml file. 
       // node.getAttributes().getNamedItem("NODE NAME") 
       }