2011-08-31 43 views
0

我搜查了cpan和google上的文档,似乎找不到答案。 使用Perl读取XML文件。当我做下面的代码它 抱怨perl tinyXML - 节点不是类型XmlNodePtr

XML :: TinyXML的:: XmlGetChildNode:节点类型的xmlNodePtr的不/usr/local/lib/perl/5.10.1/XML/TinyXML.pm线485。

我需要做些什么来使我的变量成为XmlNodePtr并使用 它正确地调用getChildNode()?

`

my $xml = XML::TinyXML->new(); 
$xml->loadFile("myfile"); 

my $node = $xml->getRootNode(1); 
my $val = $node->value("context"); 
print "root Node value: $val\n"; prints "root Node value: context" 
my $clen = $node->countChildren(); 
print "total children $clen\n";  prints "total children 115" 

my $this_node = $xml->getChildNode($node, 0); <----error 

`

香港专业教育学院还试图似乎是什么(下) 妥善解决从XML :: TinyXML的::节点的文档也说:

XML :: TinyXML :: XmlGetChildNode:节点的类型XmlNodePtr位于/usr/local/lib/perl/5.10.1/XML/TinyXML.pm line 485.

`

my $ptr = XML::TinyXML::Node->new($node); 
my $this_node = $xml->getChildNode($ptr, 0); <---- error 

`

回答

0

尝试在$node本身调用getChildNode。此外,节点索引可能从1开始,而不是0.

my $this_node = $node->getChildNode(1); 
+0

谢谢Michal,但是我尝试过,结果相同。我放弃了,转而使用XML :: Simple,并在15分钟内完成并运行,而整个一天,我都失去了试图让TinyXML发挥作用的一天。 – Tim