是否有任何空白子节点用于XML解析器?
发布时间:2020-12-16 23:21:40 所属栏目:百科 来源:网络整理
导读:为什么我们必须有空白 XML节点的概念?他们为 XML解析的炼金术带来了什么好处? Perl的 XML::LibXML 就是一个简单的例子: use strict;use warnings;use feature 'say';use XML::LibXML;my $xml = XML::LibXML-load_xml( string = 'XMLDOC' );alphabet child
为什么我们必须有空白
XML节点的概念?他们为
XML解析的炼金术带来了什么好处?
Perl的 use strict; use warnings; use feature 'say'; use XML::LibXML; my $xml = XML::LibXML->load_xml( string => <<'XMLDOC' ); <alphabet> <child name='alpha'/> <child name='bravo'/> <child name='charlie'/> <child name='delta'/> <child name='echo'/> </alphabet> XMLDOC my ( $parent ) = $xml->findnodes( '/alphabet' ); my @all_kids = $parent->childNodes; my @real_kids = $parent->nonBlankChildNodes; say 'All kids : ',scalar @all_kids; # '11' say 'Real kids : ',scalar @real_kids; # '5' => 6 blank child nodes 让我感到困惑的是,解析器区分了检索所有子节点和非空节点. 那么这些空白节点必须至少有一个合理的用途.确切地知道这些用途是什么会很有趣. 解决方法
从HTML中考虑这种情况:
<div><b>hello</b><i>world</i></div> vs这一个: <div> <b>hello</b> <i>world</i> </div> 在第一个示例中,没有空白节点,渲染引擎不会在helloworld之间放置空格.在第二个例子中,由于文本节点之间有一个空白节点,它将作为hello world出现. 你需要知道那里有空白节点,因为一些XML语言会关心它们的位置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |