2011-05-14 22 views
0

我以前使用Apache消化器,並喜歡基於分支的xml標記搜索。 將標籤指定爲 h \ a \ b \ 非常直觀。是否可以使用Apache Digester過濾動態xml葉子標籤?

現在我想做xml過濾項目,但apache消化器似乎並不會工作,只是因爲沒有辦法獲取到底層的xml標記。正如常見問題解答所說:

如何獲得一些嵌套在標記內的xml作爲文字字符串?

這是經常被問到如何嵌套在一個文檔中的一些XML(ESP XHTML)可以提取作爲一個字符串,如提取「身體」的標籤下面的內容作爲一個字符串:

...一些xml代碼...

如果您可以修改上述以將所需的文本作爲CDATA節包裝,那麼事情很簡單;沼氣池就乾脆把那CDATA塊作爲一個字符串:

...一些XML代碼...

如果無法做到,那麼你需要使用NodeCreateRule來創建一個表示DOM節點body標籤及其子元素,然後將該DOM節點序列化迴文本。

請記住,Digester只是一個標準XML解析器之上的層,標準XML解析器沒有選擇可以停止在特定元素處解析輸入 - 除非它知道該元素的內容是一個字符塊(CDATA)。

如果有東西使用相同的模式系統,我可以用來過濾XML?我的想法是使用用戶給出的模式並將它們黑名單,並複製其他所有內容。

或者也許有一種方法可以在Apache Digester(xml中的位置,而不僅僅是顯示的文本)中找到匹配的位置。這足以讓我複製其他文本並保留其副本並跳過匹配。

編輯:我自從發現XPath看起來幾乎可以做到這一點,但我發現的所有應用程序都是爲了選擇一些東西,而不是刪除它。你有這樣的例子嗎?

回答

0

沒關係,設法用XPath來做到這一點。

相關問題