We got data that was supposed to be CSV, but was sent in a huge XML file.
I've downloaded xmlstarlet
, but I'm darned if I can get it to operate the "sel" feature to look down a path and get any sort of value. I see pieces of what should be paths, but they seem to have extraneous characters, and I don't know how to use the various <...> fields to make s decent query. For example,
I want to get: <es:mixedModeRadio>false</es:mixedModeRadio>
from the below small piece of the XML file: How?
xmlstarlet sel "/<configData dnPrefix="Undefined">/<xn:SubNetwork id="ONRM_ROOT_MO_R">/<xn:SubNetwork id="MyTown">/<xn:MeContext id="LL12345">/<xn:VsDataContainer id="LL12345">"
Is there an easier way? Is there some intermediate step I'm missing?
Here's a very tiny part of a very large file:
<?xml version="1.0" encoding="UTF-8"?>
<bulkCmConfigDataFile xmlns:un="utranNrm.xsd"
xmlns:es="Edward.15.25.xsd"
xmlns:xn="genericNrm.xsd" xmlns:gn="geranNrm.xsd" xmlns="configData.xsd">
<fileHeader fileFormatVersion="32.615 V4.5" vendorName="Edward"/>
<configData dnPrefix="Undefined">
<xn:SubNetwork id="ONRM_ROOT_MO_R">
<xn:SubNetwork id="MyTown">
<xn:attributes>
<xn:userDefinedNetworkType>MY_SERVERS</xn:userDefinedNetworkType>
<xn:userLabel>MyTown</xn:userLabel>
</xn:attributes>
<xn:MeContext id="LL12345">
<xn:VsDataContainer id="LL12345">
<xn:attributes>
<xn:vsDataType>vsDataMeContext</xn:vsDataType>
<xn:vsDataFormatVersion>EdwardSpecificAttributes.15.25</xn:vsDataFormatVersion>
<es:vsDataMeContext>
<es:userLabel>LL12345</es:userLabel>
<es:ipAddress>11.164.0.116</es:ipAddress>
<es:neMIMversion>vF.1.107</es:neMIMversion>
<es:lostSynchronisation>SYNCHRONISED</es:lostSynchronisation>
<es:bcrLastChange>1452424403156</es:bcrLastChange>
<es:bctLastChange>1452160614628</es:bctLastChange>
<es:multiStandardRbs6k>true</es:multiStandardRbs6k>
<es:mixedModeRadio>false</es:mixedModeRadio>
<es:mirrorMIBversion>F.1.100.S.1.6</es:mirrorMIBversion>
<es:stnNodes></es:stnNodes>
</es:vsDataMeContext>
</xn:attributes>
</xn:VsDataContainer>
<xn:ManagedElement id="1">
<xn:attributes>
<xn:locationName></xn:locationName>
<xn:userDefinedState></xn:userDefinedState>
<xn:vendorName>Edward</xn:vendorName>
<xn:userLabel>LL12345</xn:userLabel>
<xn:managedElementType>ERBS</xn:managedElementType>
<xn:swVersion>108991/23_R0DX</xn:swVersion>
<xn:managedBy>SubNetwork=ONRM_ROOT_MO_R,ManagementNode=ONRM</xn:managedBy>