6
我有一個簡單的XML文件看起來像這樣:我的Perl腳本中的findnodes語句有什麼問題?
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<microplateDoc xmlns="http://moleculardevices.com/microplateML">
<camelids>
<species name="Camelus bactrianus">
<common-name>Bactrian Camel</common-name>
<physical-characteristics>
<mass>450 to 500 kg.</mass>
<appearance>
Blah blah blah
</appearance>
</physical-characteristics>
</species>
</camelids>
</microplateDoc>
我想用下面的Perl腳本來讀取物種名稱:
use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file('/Users/johncumbers/Documents/7_Scripts/Perl/XML_to_MySQL/simplified_camelids.xml');
my $xc = XML::LibXML::XPathContext->new($doc->documentElement() );
$xc->registerNs('ns', 'http://moleculardevices.com/microplateML');
#loop through to find species nodes
my @n = $xc->findnodes('*/species'); #was */species
foreach $nod (@n) {
print "A: ".$nod->getAttribute("name")."\n";
my @c = $nod->findnodes('./common-name');
}
但我沒有得到任何發現節點。你能幫助並告訴我爲什麼它不能正常工作嗎?什麼是查看perl函數的最佳網站,以便我可以自己嘗試並自行解決這個問題?我怎樣才能讓腳本告訴我它在做什麼,因爲目前的輸出結果是什麼都沒有。非常感謝。
/ns:microplateDoc/ns:camelids/ns:species would work btw ... – 2010-01-17 00:37:40