2016-09-21 67 views
0

我有它的线条像这样的一个XML文件:如何在java中的xml属性值中获取html标记值?

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

我要访问的身体属性。我使用了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

从XML文件的角度来看,HTML被认为是非结构化的(假设XML文件具有这样的观点)。为了访问标签内容,您需要分别解析HTML字符串。经常使用的框架是jsoup