爲什麼我們必須要有空白XML節點的概念?他們爲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 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
令我百思不解的是,解析器使得檢索所有子節點,只有非空的人之間的區別。
看來那麼這些空白節點至少必須有一個理智用法。準確地知道這些用途是什麼會很有趣。
我們在談論空白節點,對嗎?每個「子」元素之間都有一個(非顯着的)空白節點。符合性解析器將允許您忽略這些。 – harpo 2011-12-24 20:20:08
@harpo:問題不清楚嗎?這些空白節點有用嗎?我想在這個問題上受到教育。 – Zaid 2011-12-24 20:22:52