2016-03-03 3 views
0

Как получить текст из тега xml в Java? Например это файл 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") 
       } 
Смежные вопросы