2016-09-21 1 views
0

У меня есть XML-файл, строки, как это:Как получить значение тега html внутри значения атрибута xml в java?

<row Id="1" PostId="" ..... Body="<p>....</p><p>...<a>....</p><p>....</p>"....> 

Я хочу, чтобы иметь доступ к атрибуту Body. Я использовал парсер DOM, documentBuilder.

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dBuilder = null; 
Document doc = null; 
try { 
     dBuilder = dbFactory.newDocumentBuilder(); 
    } catch (ParserConfigurationException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    try { 
     doc = dBuilder.parse(this.xmlFile); 
    } catch (SAXException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    doc.getDocumentElement().normalize(); 
    NodeList nList = doc.getElementsByTagName("row"); 
    for(int i=0;i<nList.getLength();i++){ 
     Node n = nList.item(i); 
     if(n.getNodeType() == Node.ELEMENT_NODE){ 
      NamedNodeMap nnmap = n.getAttributes(); 
      NodeList nnmapList = nnmap.getNamedItem("Body").getChildNodes() 
      for(int k=0;k<nnmapList.getLength();k++){ 
       pr.write(k+": "+nnmapList.item(k).getTextContent()+ "\n"); 
      } 
      pr.write("\n"); 
     } 
    } 

Мой выход таков:

0: <p>... <a href="...">...</a> ...</p><p>...</p> 

Теперь я хочу, чтобы обычный текст в между <p> и <a> тегами. Для <a>, я не хочу href, только ссылку псевдоним. Как добиться этого в java?

ответ

0

HTML считается неструктурированным с точки зрения XML-файла (при условии, что файлы XML имеют точки зрения, которые есть). Чтобы получить доступ к содержимому тега, вам нужно отдельно разобрать HTML-строку. Рамка, часто используемая для этого, - jsoup.