如何在java中的xml属性值中获取html标记值?

时间:2016-09-21 08:47:11

标签: java xml parsing dom tags

我有一个XML文件,其行如下:

<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中实现?

1 个答案:

答案 0 :(得分:0)

从XML文件的角度来看,HTML被认为是非结构化的(假设XML文件具有视点)。要访问标记内容,您需要单独解析HTML字符串。通常用于此的框架是jsoup

相关问题