[英]Java contextual sax / stax parsing
我想將直接作為子節點出現的所有文本元素提取到根節點 。 我使用DefaultHandler
了解了java標准sax fascilities; 但它似乎不是它的路徑意識。
問題是只獲得first-level only
節點,而不是僅提取文本節點 。
是否有任何非DOM導向的方法來做到這一點? (注意,節點名稱不是預先知道的)
[編輯]
<root>
<a>text1</a>
<b>text2</b>
<c>text3</c>
<nested>
<d>not_text4</d>
...
<nested>
...
</root>
Map<String, String> map := {
{a, text1}
{b, text2}
{c, text3}
}
目前解決了面向DOM的解決方法。 雖然存在為SAX / STAX提供xpath表達式子集的庫。
SAX和StAX確實不具有路徑意識,因為它們是面向事件的。 雖然實現跟蹤解析級別的處理程序當然是可能的,但使用XPath可能會更好。
一個更復雜的策略可能是編寫一個XSLT轉換,它只保留你所追求的元素,然后使用SAX或Stax處理結果。
這將是一個小開銷,但你有一個強大的工具來使用xml。 試試JAXB 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.