Javascript XPATH获取重复子节点的最后一个元素

时间:2018-09-05 10:28:47

标签: javascript xpath element

我正在尝试找到一种方法来获取XML响应中元素的最后一个实例。 XML包含错误详细信息,该错误详细信息包含一个内部包含完整错误详细信息的对象:

<error description="Anything">
    <object>
        <error description="Actual Error">
            <!-- error information in here -->
            <errorCode>123</errorCode>
            <message>Error message</message>
        </error>
    </object>
</error>

我总是想要最后一个“错误”,我可以通过

error.xpath('/error/object/error').item(0).getAttribute('description');
从上面的详细信息中获取错误详细信息,然后是后续详细信息(代码,消息等)。

如果错误通过多个异常处理程序冒出,则会出现问题,因为每个异常处理程序都添加了自己的错误元素,因此最终看起来像这样:

<error description="Anything">
    <object>
        <error description="Something Else">
            <object>
                <error description = "Actual Error">
                    <!-- error information in here -->
                    <errorCode>123</errorCode>
                    <message>Error message</message>
                </error>
            </object>
        </error>
    </object>
</error>

此重复的对象错误模式可能会持续不止一次,具体取决于重新抛出异常的次数。要从上面获取详细信息,我需要:

error.xpath('/error/object/error/object/error').item(0).getAttribute('description');

我永远不会期望超过2或3次重新抛出,但是我不想编写讨厌的代码来尝试捕获4个不同级别。

我已经读过有关'last()'并尝试过

(//element[@name='error'])[last()]
,但我认为我得到了错误的语法,因为它返回的是不确定的。

是否存在一种简单的方法来始终获取这种重复XML树中“错误”元素的最后(最深)实例?

我只想读取XML中的数据,不需要翻译或更改任何内容。

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用XML Spear从xml复制X路径。那可以帮助您入门。

您可以在http://www.donkeydevelopment.com上找到免费软件