2013-08-17 43 views
1

我已經編寫了一些java代碼,用於解析使用DOM的XML,以便在我的程序中加載數據。 使用Eclipse格式化格式化XML「格式」函數,我遇到了一個問題:以前從文檔元素中工作的getTextContent()現在返回一個字符串,其中包含從Eclipse格式中添加的空格(或whatelse)。 我正在尋找的是給出解決辦法:Java - 處理DOM解析的「getTextContent()」中的縮進XML

<myElement>一些文字

</myElement>

當我從文件代碼選擇元素<myElement>,我想getTextContent( )表現如下:

myElement.getTextContent().equals("some text of mine");

雖然它實際上失敗。

如果我太沒有針對性,告訴我, 謝謝。

回答

2

使用幫助函數打包XML文本內容。

public String getPackedContent(Element element) { 
    if (element != null) { 
     String text = element.getTextContent(); 
     if (text != null) { 
      return text.trim().replaceAll("\\s+", " "); 
     } 
    } 
    return ""; 
} 

System.out.print(getPackedContent(myElement)); // "some text of mine" 

String#replaceAll()需要一個正則表達式表達式搜索的字符串爲應與作爲第二個參數傳遞的替換字符串替換匹配。 \\s+表示包含新行的一個或多個(+)空格(\s)。第一個\轉義爲\s中所需的實際\

+0

謝謝,我會試一試!正則表達式「\\ s +」代表什麼? – iMineLink

+0

@iMineLink它表示包含新行的一個或多個('+')空格('\ s')。第一個'\'轉義了'\ s'所需的實際'\'。 –

+0

我已經在我的代碼中試過了您的代碼片段,它的工作完美無瑕。非常感謝你! – iMineLink