How to Read a Single Value from an XML File in Linux??

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:mixedModeRadiofalse</es:mixedModeRadio> from the below small piece of the XML file: How?

xmlstarlet sel “//<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"?>




<xn:SubNetwork id=“ONRM_ROOT_MO_R”>
<xn:SubNetwork id=“MyTown”>
xn:attributes
xn:userDefinedNetworkTypeMY_SERVERS</xn:userDefinedNetworkType>
xn:userLabelMyTown</xn:userLabel>
</xn:attributes>
<xn:MeContext id=“LL12345”>
<xn:VsDataContainer id=“LL12345”>
xn:attributes
xn:vsDataTypevsDataMeContext</xn:vsDataType>
xn:vsDataFormatVersionEdwardSpecificAttributes.15.25</xn:vsDataFormatVersion>
es:vsDataMeContext
es:userLabelLL12345</es:userLabel>
es:ipAddress11.164.0.116</es:ipAddress>
es:neMIMversionvF.1.107</es:neMIMversion>
es:lostSynchronisationSYNCHRONISED</es:lostSynchronisation>
es:bcrLastChange1452424403156</es:bcrLastChange>
es:bctLastChange1452160614628</es:bctLastChange>
es:multiStandardRbs6ktrue</es:multiStandardRbs6k>
es:mixedModeRadiofalse</es:mixedModeRadio>
es:mirrorMIBversionF.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:vendorNameEdward</xn:vendorName>
xn:userLabelLL12345</xn:userLabel>
xn:managedElementTypeERBS</xn:managedElementType>
xn:swVersion108991/23_R0DX</xn:swVersion>
xn:managedBySubNetwork=ONRM_ROOT_MO_R,ManagementNode=ONRM</xn:managedBy>

Maybe I’m being a bit dense, but I’m not quite sure what you’re trying to achieve here ?