J'essaye d'analyser les statistiques de performance (3gpp 32.435). La structure n'est pas aussi simple que je le souhaite, voir l'exemple. Le résultat que je cherche est d'avoir une sortie de texte avecAnalyseur Perl XML pour DOM
endTime:measType:measValue
J'ai essayé d'utiliser un script Perl pour extraire des valeurs, mais comme vous pouvez le voir, pour SGSN-MME_Session_SM_G il y a deux types et deux valeurs, de sorte que le résultat pour mon script est
SM.SuccActSecondPdpContext.G
SM.UnsuccActPdpContextCC38.G
1
473764
Si quelqu'un pouvait me donner une idée comment analyser ce XML ou comment rejoindre le type et la valeur de deux enfants d'un parent. Je serais reconnaissant, merci ..
Script utilisé:
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
use XML::LibXML;
my $filename = 'file.xml';
my $dom = XML::LibXML->load_xml(location => $filename);
foreach my $measvalue ($dom->documentElement) {
say $measvalue->to_literal();
}
fichier XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="MeasDataCollection.xsl"?>
<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
<fileHeader fileFormatVersion="32.435 V9.0" vendorName="New Vendor">
<fileSender />
<measCollec beginTime="2017-10-09T20:17:00+03:00" />
</fileHeader>
<measData>
<managedElement localDn="TestNode" />
<measInfo measInfoId="SGSN-MME_Mobility_U">
<job jobId="customPdcJob" />
<granPeriod duration="PT60S" endTime="2017-10-09T20:18:00+03:00" />
<repPeriod duration="PT60S" />
<measType p="1">succGprsAttachUmts</measType>
<measValue measObjLdn="ManagedElement=TestNode,SgsnFunction=1">
<r p="1">132737759</r>
</measValue>
</measInfo>
<measInfo measInfoId="SGSN-MME_Session_DiscardedMessages_G">
<job jobId="customPdcJob" />
<granPeriod duration="PT60S" endTime="2017-10-09T20:18:00+03:00" />
<repPeriod duration="PT60S" />
<measType p="1">discardedSessionMgmnt</measType>
<measValue measObjLdn="ManagedElement=TestNode,SgsnFunction=1">
<r p="1">12368</r>
</measValue>
</measInfo>
<measInfo measInfoId="SGSN-MME_Session_SM_G">
<job jobId="customPdcJob" />
<granPeriod duration="PT60S" endTime="2017-10-09T20:18:00+03:00" />
<repPeriod duration="PT60S" />
<measType p="1">SM.SuccActSecondPdpContext.G</measType>
<measType p="2">SM.UnsuccActPdpContextCC38.G</measType>
<measValue measObjLdn="ManagedElement=TestNode,SgsnFunction=1">
<r p="1">1</r>
<r p="2">473764</r>
</measValue>
</measInfo>
<measInfo measInfoId="SGSN-MME_Session_SM_U">
<job jobId="customPdcJob" />
<granPeriod duration="PT60S" endTime="2017-10-09T20:18:00+03:00" />
<repPeriod duration="PT60S" />
<measType p="1">SM.UnsuccActPdpContextCC38.U</measType>
<measValue measObjLdn="ManagedElement=TestNode,SgsnFunction=1">
<r p="1">737355</r>
</measValue>
</measInfo>
<measInfo measInfoId="SGSN-MME_SystemResource_PIU">
<job jobId="customPdcJob" />
<granPeriod duration="PT60S" endTime="2017-10-09T20:18:00+03:00" />
<repPeriod duration="PT60S" />
<measType p="1">SYS.gsnApCpuUsage</measType>
<measValue measObjLdn="ManagedElement=TestNode,SgsnMme=1,PIU=1.1">
<r p="1">6</r>
</measValue>
<measValue measObjLdn="ManagedElement=TestNode,SgsnMme=1,PIU=1.3">
<r p="1">5</r>
</measValue>
<measValue measObjLdn="ManagedElement=TestNode,SgsnMme=1,PIU=1.5">
<r p="1">5</r>
</measValue>
<measValue measObjLdn="ManagedElement=TestNode,SgsnMme=1,PIU=1.7">
<r p="1">5</r>
</measValue>
</measInfo>
</measData>
<fileFooter>
<measCollec endTime="2017-10-09T20:18:00+03:00" />
</fileFooter>
</measCollecFile>
On dirait que cette question a un vote serré parce que vous avez commencé avec " Je suis à la recherche d'un script de parseur XML, "qui se lit comme si vous aviez une exigence" Donnez-moi le codez ". Poser vos questions comme des questions directes aiderait à éviter cela;) –