【问题标题】:Getting XHTML embedded in XML将 XHTML 嵌入 XML
【发布时间】:2016-06-08 13:25:51
【问题描述】:

我正在尝试将 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。

【问题讨论】:

  • 你正在调用getTextContent(),它只会得到纯文本内容。

标签: java dom xml-parsing xhtml


【解决方案1】:

这是一个正则表达式的破解

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

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2019-03-22
    • 1970-01-01
    • 2010-11-20
    相关资源
    最近更新 更多