我正在擴展org.xml.sax.helpers.DefaultHandler以解析XML。 如何確定解析過程中的深度級別?Java:如何使用SAX確定XML解析期間的深度級別
例如:
<?xml version="1.0" encoding="utf-8"?>
<jsk:Dataset gml:id="Dataset1" ....>
<gml:description>....</gml:description>
<gml:boundedBy>
...
</gml:boundedBy>
</jsk:Dataset>
<jsk:Dataset>
標籤是在水平0
<gml:description>
和<gml:boundedBy>
標籤1水平等等...
在右側方向上的任何指導理解。
你的意思是在startElement()上存儲名字,然後檢查它是否以endElement的名字退出? – eros 2011-06-06 06:46:00
如果你想要關卡並沒有別的東西,那就沒有必要了。有效的XML將要求每個開始標籤都被一個適當的結束標籤關閉,因此您將始終處於安全狀態。如果您在startElement上遞增,並且值從-1開始,則DataSet將具有值0,描述將具有1,並且邊界也會被視爲1,以在結束描述標記時該值變爲0。您需要將每個標籤視爲一個事件。在沒有結束事件時遇到的開始事件越多,深度計數就越大,然後進入結束事件開始與開始事件匹配的階段。 – 2011-06-06 06:52:11
非常感謝。我知道了。 Vineet明確解釋。 – eros 2011-06-06 06:55:43