0

I am using Perl XML::LibXML for extracting some data from an XML like below one.

The XML:

<root>
<child1>
    <child2>
        <common_tag_name>
            <name>name_level1_name1</name>
            <attribute>
              <name>name_level2_name1</name>
              <value>some_data1</value>
            </attribute>
            <attribute>
              <name>name_level2_name2</name>
              <value>some_data2</value>
            </attribute>
            <attribute>
              <name>name_level2_name3</name>
              <value>some_data3</value>
            </attribute>
        </common_tag_name>

        <common_tag_name>
            <name>name_level1_name2</name>
            <attribute>
              <name>name_level2_name1</name>
              <value>some_data4</value>
            </attribute>
            <attribute>
              <name>name_level2_name2</name>
              <value>some_data5</value>
            </attribute>
            <attribute>
              <name>name_level2_name3</name>
              <value>some_data6</value>
            </attribute>
        </common_tag_name>
    </child2>
</child1>
</root>

Problem:

Find ; if /common_tag_name/name == "name_level1_name1" and /common_tag_name/name/attribute/name == "name_level2_name1" then extract /common_tag_name/name/attribute/value i.e. I should get "some_data1"

Should loop this to read same_data*

Is it possible with XML::LibXML?

Shreyas
  • 1
  • 1

1 Answers1

0

Yes, it is possible to do that with XML::LibXML.

simbabque
  • 53,749
  • 8
  • 73
  • 136