2012-01-06 122 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与否的其他方式,但我认为这应该适用于所有情况。我希望这有助于 - 如果没有,请提供更多关于您使用的确切环境的详细信息,我相信有人能够提供更精确的帮助。