gpt4 book ai didi

xml - 使用 XML::LibXML 解析 XML 的 Perl 脚本;

转载 作者:数据小太阳 更新时间:2023-10-29 01:44:03 25 4
gpt4 key购买 nike

我认为这是一个很简单的问题,但我搜索了很多次都无法弄清楚。

我正在尝试解析以下 XML 以打印类似于 TAG=VALUE 的内容,以便我可以将其写入 CSV 文件。问题是每个样本的标签并不总是相同的。我似乎无法弄清楚如何获取实际的标签名称。任何帮助表示赞赏!!!

XML 文件 -

<Statistics>
<Stats>
<Sample>
<Name>System1</Name>
<Type>IBM</Type>
<Memory>2GB</Memory>
<StartTime>2012-04-26T14:30:01Z</StartTime>
<EndTime>2012-04-26T14:45:01Z</EndTime>
</Sample>

<Sample>
<Name>System2</Name>
<Type>Intel</Type>
<Disks>2</Disks>
<StartTime>2012-04-26T15:30:01Z</StartTime>
<EndTime>2012-04-26T15:45:01Z</EndTime>
<Video>1</Video>
</Sample>
</Stats>
</Statistics>

脚本-

#!/usr/bin/perl
use XML::LibXML;

$filename = "data.xml";

my $parser = XML::LibXML->new();
my $xmldoc = $parser->parse_file($filename);

for my $sample ($xmldoc->findnodes('/Statistics/Stats/Sample')) {

print $sample->nodeName(), ": ", $sample->textContent(), "\n";

}

最佳答案

您有获取标签名称的正确方法,您只需要一个额外的循环来遍历每个 <sample> 中的标签:

#!/usr/bin/perl

use strict;
use warnings;

use XML::LibXML;

my $filename = "data.xml";

my $parser = XML::LibXML->new();
my $xmldoc = $parser->parse_file($filename);

for my $sample ($xmldoc->findnodes('/Statistics/Stats/Sample')) {
for my $property ($sample->findnodes('./*')) {
print $property->nodeName(), ": ", $property->textContent(), "\n";
}
print "\n";
}

编辑:我现在创建了一个名为Perl XML::LibXML by Example 的教程网站。这正是这类问题的答案。

关于xml - 使用 XML::LibXML 解析 XML 的 Perl 脚本;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10404152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com