2014-05-24 71 views
1

我有一個XML文件,並且我想從一個標記中獲取文本,但是如果該文本包含另一個要忽略的標記。例如:在Java中解析XML並忽略標記

<?xml version="1.0"?> 
<entries> 
    <entry accente="B" diacritice="B"> 
    <sense class="0" value="B"> 
     <definition> 
     <RegDef>Hello <i>world.</i> Today is Saturday.</RegDef> 
     </definition> 
    </sense> 
    </entry> 
</entries> 

輸出應該是:「世界,你好今天是星期六

什麼是做到這一點的最好方法

+0

不是正則表達式:http://stackoverflow.com/a/1732454/3580294 – awksp

+1

當你用XPath解析時,你指定了你想要的結果類型。如果你沒有指定任何特定的類型,你會得到一個'String',在這種情況下恰好就是你想要的。所以看看'XPath'。如果你不能解決問題,請發表評論,我會發佈一個正確的答案。 –

+1

@Braj也許這個問題的後半部分是這個問題的重複 - 但這個問題並沒有涉及到拉出所需的標籤開始。 –

回答

0

我相信,忽略XML標記不能。?來完成。 所以你的問題最好的解決辦法是,

1-讀取XML的內容爲一個字符串

2 - 解析字符串,重新移動所有不需要的標籤&個字符。

3-將String寫回到文件中。或者如果您無法修改原始文件,請創建一個新文件。

4-解析修改的/新文件。

希望這會有所幫助。

2

謝謝@戴維華萊士。

String expression = "/entries/entry/sense/definition/RegDef"; 
System.out.println(expression); 
String RegDef = xPath.compile(expression).evaluate(xmlDocument); 
System.out.println(RegDef); 

這正是我想要的。

+0

看起來完全正確。幹得好,祝你好運。 –