使用Perl提取XML标记
我需要一个Perl脚本来分离XMl标记。例如:使用Perl提取XML标记,xml,perl,parsing,Xml,Perl,Parsing,我需要一个Perl脚本来分离XMl标记。例如: <bgtres> <resume key='267298871' score='5'> <xpath path='xpath://resume'> <resume canonversion='2' dateversion='2' present='734060'>........... </resume></xpath></resume> </bgtre
<bgtres>
<resume key='267298871' score='5'>
<xpath path='xpath://resume'>
<resume canonversion='2' dateversion='2' present='734060'>........... </resume></xpath></resume>
</bgtres>
在这个XML文件中,我需要在xpath中分离resume标记下的内容,xpath之后出现的resume标记应该单独从CV包中提取出来。我需要在Perl脚本中执行此操作
任何人都可以给我一个提示或编码来完成这个过程。我需要Perl脚本来完成这个过程
提前感谢您需要使用。您需要使用
请参阅-A perl模块
用于在中处理巨大的XML文档
树模式。
或-易于使用的API
维护XML esp配置文件
像
输出:
请参阅-A perl模块
用于在中处理巨大的XML文档
树模式。
或-易于使用的API
维护XML esp配置文件
像
输出:
我对perl还是一个新手,我不是这方面的专家。这就是说,我最近不得不解析一个XML文件,结果使用了它。我看到的一件好事是,当我在一个月后不得不回去添加更多功能时,代码仍然相当容易阅读。下面是一个小片段来打印佳能版本
use XML::DOM;
# Create instance of XML Dom Parser
my $parser = new XML::DOM::Parser;
# Read XML Doc
my $doc = $parser->parsefile ("$XMLFile");
# Fetch all resume tags
foreach my $resume ($doc->getElementsByTagName("resume")) {
$canonversion = $resume->getAttributeNode("BuildName")->getValue;
# Do something with it
print $canonversion;
}
希望这能有所帮助。我对perl还是新手,我不是这方面的专家。这就是说,我最近不得不解析一个XML文件,结果使用了它。我看到的一件好事是,当我在一个月后不得不回去添加更多功能时,代码仍然相当容易阅读。下面是一个小片段来打印佳能版本
use XML::DOM;
# Create instance of XML Dom Parser
my $parser = new XML::DOM::Parser;
# Read XML Doc
my $doc = $parser->parsefile ("$XMLFile");
# Fetch all resume tags
foreach my $resume ($doc->getElementsByTagName("resume")) {
$canonversion = $resume->getAttributeNode("BuildName")->getValue;
# Do something with it
print $canonversion;
}
希望有帮助。是Perl,不是Perl-这是Perl,不是Perl-DOM非常古老,现在并不是真正推荐的处理XML的方法。XML::LibXML有一个非常相似的接口,但速度更快、功能更强大、维护更好。@mirod感谢您的建议,我刚刚修改了我的旧脚本,使用LibXML而不是XML dom,我看到速度有了显著的提高……XML::dom非常古老,现在并不是真正推荐的处理XML的方法。XML::LibXML有一个非常相似的接口,但速度更快、功能更强大、维护更好。@mirod感谢您的建议,我刚刚修改了我的旧脚本,使用LibXML而不是XML dom,我看到速度有了显著提高。。。
use XML::DOM;
# Create instance of XML Dom Parser
my $parser = new XML::DOM::Parser;
# Read XML Doc
my $doc = $parser->parsefile ("$XMLFile");
# Fetch all resume tags
foreach my $resume ($doc->getElementsByTagName("resume")) {
$canonversion = $resume->getAttributeNode("BuildName")->getValue;
# Do something with it
print $canonversion;
}