使用SAX Parsing解析具有嵌套元素的XML

时间:2012-01-06 11:17:30

标签: xml dom xml-parsing sax

考虑以下示例 -

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

如果我们遇到一个元素<a>,如果它是另一个a或b元素的子节点,我们必须做不同的事情,当我们直接遇到<a>时,我们必须做不同的事情 根元素的孩子。

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

请解释一下。

1 个答案:

答案 0 :(得分:-1)

我不熟悉“SAX解析器”但是如果您可以使用Xpath来标识要处理的节点,那么这将测试<a>节点是否是a的子节点或b

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

如果这是一个有效的XML文档,我假设有一个带有名称的根元素,并且由于你没有在这里说明,我将基于它被称为“根元素”的假设给出一个例子。 ”。在这种情况下,如果<a>是其直接子项,则返回true:

a[parent::root-element]

根据您是否使用Xpath 2,可能还有其他方法可以实现此目的,但我认为这应该适用于所有情况。我希望有帮助 - 如果没有,请提供您正在使用的确切环境的更多详细信息,我相信有人能够提供更准确的帮助。