2012-01-06 126 views
0

請看下面的例子 -使用SAX解析解析XML已經嵌套元素

<a>abc</a> 
<a> 
    <a>bcd</a> 
</a> 
<a> 
    <b> 
     <a> 
      <a> 
       def 
      </a> 
     </a> 
    </b> 
</a> 

我們要做不同的事情時,我們遇到一個元素<a>如果它是另一個a或b元素的子節點,當我們遇到<a>作爲直接 根元素的孩子,我們有不同的東西。

如何使用SAX解析器處理此文件?

請解釋一下。

回答

-1

我不熟悉的「SAX解析器」,但如果你可以使用XPath來標識要處理的節點,那麼這將考驗<a>節點是否是一個ab孩子:

a[parent::*[self::a or self::b]] 

如果這是一個有效的XML文檔,我假設有一個帶有名稱的根元素,並且由於您沒有在這裏說明它,所以我將根據假設它被稱爲「根元素」。在這種情況下,如果<a>是它的直接孩子,這將返回true:

a[parent::root-element] 

有可能實現這一目標取決於不管你是使用XPath 2與否的其他方式,但我認爲這應該適用於所有情況。我希望這有助於 - 如果沒有,請提供更多關於您使用的確切環境的詳細信息,我相信有人能夠提供更精確的幫助。