1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl
use strict;
use warnings;
use XML::LibXML;
use Data::Dumper;
# my $filename = 'library.xml'; #- ORIG
my $filename = 'data.xml';
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($filename);
my $xpath = '/Model/packagedElement/@name';
print Dumper $doc->findvalue($xpath);
# print Dumper $doc->toString(1);
<packagedElement type="Package" id="EAPK_5CA989EF_DA2A_47b0_8FD4_DDA64A360A99" name="Chaotisches_Pendel">
1
2
3
<Revolute base_Class="EAID_A2A300B3_4664_4f05_8DA6_6A5CB89FAA15" cylinderDiameter="world.defaultJointWidth" stateSelect="StateSelect.prefer" animation="true" useAxisFlange="false" cylinderLength="world.defaultJointLength" n="{0,0,1}"/>
<BodyBox base_Class="EAID_BD066F94_84A8_4262_9A57_5C8492934D8A" length="Modelica.Math.Vectors.length(r - r_shape)" innerWidth="0" angles_fixed="false" r_shape="{0,0,0}" animation="true" width="length/world.defaultWidthFraction" z_0_fixed="false" enforceStates="false" innerHeight="innerWidth" useQuaternions="true" height="width" w_0_fixed="false" widthDirection="{0,1,0}" r="{0.5,0,0}" density="7700"/>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/bin/perl use 5.14.0; use warnings; use XML::LibXML; use Data::Dumper; my $dom = XML::LibXML->load_xml(string => <<'EOT'); <?xml version="1.0" encoding="UTF-8"?> <Model> <packagedElement type="Package" id="EAPK_5CA989EF_DA2A_47b0_8FD4_DDA64A360A99" name="Chaotisches_Pendel">String</packagedElement> <packagedElement type="was anderes" id="zweites" name="Gravitationswaage">Misst super bei Schwelastverkehr</packagedElement> </Model> EOT my $xpath = '/Model/packagedElement'; my @nodes = $dom->findnodes($xpath); for my $node (@nodes) { say join ", ", map {$_->getName() . " -> " . $_->getValue()} $node->attributes(); }