Find if XML element has a matching required element


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find if XML element has a matching required element
# 1  
Old 01-06-2012
Find if XML element has a matching required element

I want to check if every <Part> element has corresponding <Description> in this sample XML.

Code:
 
        ....<Lot Of XML>
                    <Inv lineNumber="2">
                        <Item>                                                        
                            <Part>xxxxxx</Part>
                        </Item>                                             
                        <Description>aaaaa bbbbbbbbbbbb</Description>
                    </Inv>                                             
        ....<Lot Of XML>
                    <Inv lineNumber="2">
                        <Item>                                              
                            <Part>xxxxxx</Part>
                        </Item>                         
                    </Inv>
        ....<Lot Of XML>
                    <Inv lineNumber="2">
                        <Item>                                              
                            <Part>xxxxxx</Part>
                        </Item>                         
                        <Description>aaaaa bbbbbbbbbbbb</Description>
                    </Inv>
        ....<Lot Of XML>

This example should fail, since second <Part> does not have corresponding <Description>. I can count total <part> elements and total <Description> elements but does not feel that its the right way to do it.

Parsing using xml tools is not an option.

Last edited by kchinnam; 01-08-2012 at 11:26 PM.. Reason: data correction
# 2  
Old 01-07-2012
Counting the no of elements doesn't seem to be a bad idea unless you have some exceptions.
And where does this <Desc> tag exactly appear?

--ahamed
# 3  
Old 01-08-2012
Ideally I want to look for corresponding <Description> tag for every <Part> tag two lines below.
when it can't find matching tag, search should end with false status.

Last edited by kchinnam; 01-08-2012 at 11:31 PM.. Reason: restating
# 4  
Old 01-09-2012
Try this...
Code:
awk '/<Part/{getline;getline; if($0!~"<Description"){print "Error at line : "NR-2;exit}}' infile

--ahamed
# 5  
Old 01-09-2012
Thanks ahamed, that is exactly what I was looking for.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Extract Element from XML file

<?xml version = '1.0' encoding =... (8 Replies)
Discussion started by: Siva SQL
8 Replies

2. Shell Programming and Scripting

Find first n element by matching IDs

Hi All I have a problem that I am not able to resolve. Briefly, I have a file like this: ID_1 10 ID_2 15 ID_3 32 ID_4 45 ID_5 66 ID_6 79 ID_7 88This file is numerically ordered for the 2th column. And another file containing a list of IDs(just one in this example) ID_4What I... (7 Replies)
Discussion started by: giuliangiuseppe
7 Replies

3. UNIX for Advanced & Expert Users

Perl XML::DOM: How to test if element exists?

Hi, I'm trying to write a script for some xml file handling, but I'm not getting too far with it. I've got the following xml content <?xml version="1.0" encoding="UTF-8"?> <Test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <Operation name="OPER1"> <Action name="ACTION1">... (2 Replies)
Discussion started by: Juha
2 Replies

4. Shell Programming and Scripting

Need to find root element name of XML file

Given this XML: <?xml version="1.0"?> <catalog> <cd> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</company> <price>10.90</price> <year>1985</year> </cd> <cd> <title>Hide your heart</title> ... (2 Replies)
Discussion started by: ricksj
2 Replies

5. Shell Programming and Scripting

Extracting the Root Element from the XML File

Any help to extract the root element from an XML file will be appreciated. Example: test.xml <?xml version="1.0" encoding="utf-8" ?> <TestXMLMessage> <TestRec> <ID>1000</ID> </TestRec> </TestXMLMessage> Wanted to extract the TestXMLMessage. Regards, Chari (6 Replies)
Discussion started by: sree_chari
6 Replies

6. UNIX Desktop Questions & Answers

read XML xml element with REGEXP

Hi, I would need to read an xml element from an xml file to a local variable. Please could you help me with a shell script to get so? Considering that I have a file called file.xml like below: <header> <description>This is the description</description> <content>This is the... (2 Replies)
Discussion started by: oscarmon
2 Replies

7. Shell Programming and Scripting

Extract XML Element Values

I have a rather large file with XML-style content. Each line contains one full XML entry. For example: 1:<Message><DNIS>1234</DNIS><UCID>3456</UCID><TransferGroup>XYZXYZ</TransferGroup></Message> 2:<Message><DNIS>9999</DNIS><UCID>2584</UCID><TransferGroup>ABCABC</TransferGroup></Message>... (1 Reply)
Discussion started by: sharpi03
1 Replies

8. Shell Programming and Scripting

XML root element

Hi All Can someone please help me with this awk to search an element in a XML file with a particular value and then change the root element. Thanks & Regards Karan (9 Replies)
Discussion started by: karansachdeva
9 Replies

9. Shell Programming and Scripting

Error to "find" a matching array element in a directory

Hi, I have defined an array which holds a couple of elements which are nothing but files names. I want to find the files in a directory for the matching file name(array elements) with less than 1 day old. When I am trying to execute the code (as below), it gives an error. Your help in this... (1 Reply)
Discussion started by: mkbaral
1 Replies

10. Shell Programming and Scripting

Finding a XML element and moving the file

Hi All, I am looking for a awk/shell which can find an element named REFERENCE in a XML file and check whether it is empty or not. If there is no value in the REFERENCE element then correspondingly move the file to some other folder. The Unix server is AIX version 4. Any inputs... (9 Replies)
Discussion started by: karansachdeva
9 Replies
Login or Register to Ask a Question