我有一个 xml 文档,其中包含我想要放入数据库的信息。例子:
<pc>
<name>John</name>
<last>Smith</last>
<address>
<business>
<street>987 Broad Way</street>
<city>New York</city>
<state>New York</state>
</business>
<home>
<street>123 Main St.</street>
<city>Jersey City</city>
<state>Nebraska</state>
</home>
</address>
<phone>123-456-7890</phone>
</pc>
我打算使用 perl 来解析这些数据来构建 mysql 语句。我在获取如下格式时遇到问题:
name="John"
last="Smith"
...
到目前为止我使用的代码是:
use strict;
use warnings;
use XML::LibXML;
my $filename = "sample.xml";
my $parser = XML::LibXML->new();
my $xmldoc = $parser->parse_file($filename);
for my $contact ($xmldoc->findnodes('/server')){
print $contact->nodeName(),"\n";
foreach my $child ($contact->findnodes('*')){
print "\t", $child->nodeName(), ":\n";
foreach my $grandchild ($child->findnodes('*')){
print"\t\t", $grandchild->nodeName(), ":", $grandchild->textContent(), "\n";
}
}
}
我不怎么使用 perl,而且我对 XML::libXML 库(http://metacpan.org/pod/XML::LibXML)也不是很熟悉。我想我需要找到最后一个孩子并以我的方式备份节点?我有点迷茫我应该如何为mysql构建我的“插入”和“更新”。