Mohit Munjal
Mohit Munjal

Reputation: 1

Unix XML Parsing inside the tag

I want to extract value field inside the Value tag like 15846291,15613501. These values can be 0,1,2,3 in a single attribute tag.

<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15846291"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value><Value value="15613501"><DimensionKey  dimensionName="Index" index="1" value="1" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15846291"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value><Value value="15613501"><DimensionKey  dimensionName="Index" index="1" value="1" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15552786"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value><Value value="10100543"><DimensionKey  dimensionName="Index" index="1" value="1" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15552786"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value><Value value="10100543"><DimensionKey  dimensionName="Index" index="1" value="1" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15167200"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15167200"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15846291"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value><Value value="15613501"><DimensionKey  dimensionName="Index" index="1" value="1" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15846291"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value><Value value="15613501"><DimensionKey  dimensionName="Index" index="1" value="1" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15552786"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value><Value value="10100543"><DimensionKey  dimensionName="Index" index="1" value="1" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15552786"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value><Value value="10100543"><DimensionKey  dimensionName="Index" index="1" value="1" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15167200"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value></Attribute>
<Attribute name="Subscriber ID list" basicType="Numeric"><Value value="15167200"><DimensionKey  dimensionName="Index" index="0" value="0" name=""/></Value></Attribute>

Upvotes: 0

Views: 34

Answers (1)

OscarGarcia
OscarGarcia

Reputation: 2114

You could use xmllint, xmlstarlet or similar cli commands.

For example, using xmllint:

xmllint --xpath "//Value/@value"

I had to reformat XML to test it:

<?xml version="1.0" encoding="utf-8"?>
<Attributes>
    <Attribute name="Subscriber ID list" basicType="Numeric">
        <Value value="15846291">
            <DimensionKey  dimensionName="Index" index="0" value="0" name=""/>
        </Value>
        <Value value="15613501">
            <DimensionKey  dimensionName="Index" index="1" value="1" name=""/>
        </Value>
    </Attribute>
    <Attribute name="Subscriber ID list" basicType="Numeric">
        <Value value="15846291">
            <DimensionKey  dimensionName="Index" index="0" value="0" name=""/>
        </Value>
        <Value value="15613501">
        <DimensionKey  dimensionName="Index" index="1" value="1" name=""/>
    </Value>
    </Attribute>
    <Attribute name="Subscriber ID list" basicType="Numeric">
        <Value value="15552786">
            <DimensionKey  dimensionName="Index" index="0" value="0" name=""/>
        </Value>
        <Value value="10100543">
            <DimensionKey  dimensionName="Index" index="1" value="1" name=""/>
        </Value>
    </Attribute>
    <Attribute name="Subscriber ID list" basicType="Numeric">
        <Value value="15552786">
            <DimensionKey  dimensionName="Index" index="0" value="0" name=""/>
        </Value>
        <Value value="10100543">
            <DimensionKey  dimensionName="Index" index="1" value="1" name=""/>
        </Value>
    </Attribute>
    <Attribute name="Subscriber ID list" basicType="Numeric">
        <Value value="15167200">
            <DimensionKey  dimensionName="Index" index="0" value="0" name=""/>
        </Value>
    </Attribute>
    <Attribute name="Subscriber ID list" basicType="Numeric">
        <Value value="15167200">
            <DimensionKey  dimensionName="Index" index="0" value="0" name=""/>
        </Value>
    </Attribute>
</Attributes>

Good luck!

Upvotes: 1

Related Questions