2016-02-25 49 views
1

我試圖讓嵌入XML節點這樣的XHTML:入門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不是一個選項。

+1

要調用'getTextContent()'將只能得到純文本內容的黑客攻擊。 –

回答

0

下面是用正則表達式

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