gpt4 book ai didi

xml - "find"是否按顺序返回节点?

转载 作者:数据小太阳 更新时间:2023-10-29 01:51:49 25 4
gpt4 key购买 nike

XML::LibXML::Node::find 和相关方法是否保证节点列表总是按照 XML 文档中的顺序排列?

这对我来说很重要,因为我的文档对应于一个大数组,我希望能够在特定情况下删除其中的一系列项目,并且我必须确保这样的事情始终如一地工作:

my @nodes = $dom->find('//MyElement[@attr=something]/descendant::Token/@id')
->get_nodelist;
for my $token ( reverse map { $_->value } @nodes ) {
splice @my_big_array, $token, 1;
}

困难在于这没有记录在XML::LibXML中,我不知道这是否取决于 libxml2 实现,whose documentation不太懂,还是上了DOM standard或其他一些 W3C 标准,这些标准显然不是为了让凡人阅读而编写的。

最佳答案

据我所知,当前的 XML 标准确实关心节点的顺序,并且 XML::LibXML 的当前实现每次都会返回相同的顺序。

查看更多:In XML, is order important? , Does XML care about the order of elements?

关于这个的好读物:http://www.ibm.com/developerworks/xml/library/x-eleord/index.html

1:它需要以某种方式排序,以便每次运行同一个解析器都应该返回相同的结果。 99% 的解析器使用 xml 文件中的顺序,其余的按照模式中的顺序排序

The XML Information Set (InfoSet -- see Resources), the core XML data model defined by the W3C, characterizes element children as: An ordered list of child information items, in document order.

2:命令可以强制执行或删除

The ampersand (&) characters between the sibling element subpatterns indicate that any order is acceptable.

element memo {
element title { text } &
element date { text } &
element from { text } &
element to { text } &
element body { text }
}

关于xml - "find"是否按顺序返回节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23911221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com