Я использую Perl XML::LibXML для извлечения некоторых данных из XML, как показано ниже.
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>
Проблема:
Находить ; если /common_tag_name/name == "name_level1_name1" и /common_tag_name/name/attribute/name == "name_level2_name1", то извлеките /common_tag_name/name/attribute/value т.е. я должен получить "some_data1"
Следует зациклить это, чтобы прочитать same_data *
Возможно ли это с XML::LibXML?