<p>在您将其标记为perl/python时,我将提供一种perlish方法。你知道吗</p>
<p>Perl有一个很好的库<a href="http://search.cpan.org/~mirod/XML-Twig-3.48/Twig.pm" rel="nofollow">^{<cd1>}</a>,我非常喜欢它来解析XML。你知道吗</p>
<pre><code>#!/usr/bin/perl
use strict;
use warnings;
use XML::Twig;
my $parser = XML::Twig->new();
#would probably use parsefile instead.
#e.g.:
# my $parser = XML::Twig -> new -> parsefile ( 'your_file.xml' );
{
local $/;
$parser->parse(<DATA>);
}
#iterate all the elements in the file.
foreach my $element ( $parser->root()->children() ) {
#test your conditions
if ($element->att('attribute1') eq 'characters'
and ( not defined $element->att('attribute2')
or $element->att('attribute2') eq 'chr' )
)
{
#extract name if condition matches
print $element ->att('name'), "\n";
}
}
__DATA__
<DATA>
<NODE attribute1="characters" attribute2="chr" name="node1">
<content>
value1
</content>
</NODE>
<NODE attribute1="camera" name="node2">
<content>
value2
</content>
</NODE>
<NODE attribute1="camera" attribute2="car" name="node3">
<content>
value2
</content>
</NODE>
</DATA>
</code></pre>