在 XML 中嵌入 XHTML

Getting XHTML embedded in XML

提问人:cahen 提问时间:2/26/2016 更新时间:2/26/2016 访问量:82

问:

我正在尝试将XHTML嵌入到XML节点中,如下所示:

<entry xmlns="http://www.w3.org/2005/Atom">
    ...
    <content type="xhtml">
        <div xmlns="http://www.w3.org/1999/xhtml">
            <p>some text</p>
        </div>
    </content>  
    ...
</entry>

我希望得到:

<div xmlns="http://www.w3.org/1999/xhtml">
    <p>some text</p>
</div>

但我得到的只是:

some text

到目前为止,这是我的代码:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder db = factory.newDocumentBuilder();
Document doc = db.parse(methodeArticleXml);

System.out.println(doc.getElementsByTagName("content").item(0).getTextContent());

解析器将内容视为 XML 而不是 XHTML 或纯文本,有没有办法解决这个问题?

我无法更改文档的格式,因此无法使用 CDATA。

java dom xml解析 xhtml

评论

1赞 lance-java 2/26/2016
您正在调用,这将仅获取纯文本内容。getTextContent()

答:

0赞 lance-java 2/26/2016 #1

这是一个带有正则表达式的黑客

Pattern pattern = Pattern.compile("<content[^>]*>(.*?)</content>", Pattern.DOTALL);
Matcher matcher = pattern.matcher(xml);
while (matcher.find()) {
    String content = matcher.group(1);
    doStuff(content);
}