Solved

perl, how to get to xml child nodes

Posted on 2011-03-18
2
626 Views
Last Modified: 2012-05-11
<house>
  <rented>
    <name>james</name>
    <name>bob</bob>
  </rented>
  <owned>
    <name>dave</name>
    <name>charles</name>
  </owned>
</house>

@ownedHouses = $xml_root->getElementsByTagName("name");  #will retrieve names from both <rented> and <owned> houses.  How do I get just the owned house ones.
0
Comment
Question by:rgbcof
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 25

Accepted Solution

by:
clockwatcher earned 500 total points
ID: 35169783
Based on the getElementsByTagName call, I'm assuming you're using XML::DOM to parse your xml.  If that's the case, here's an example of returning the text within the name elements which are within owned elements.
use XML::DOM;
my $parser = new XML::DOM::Parser;

my $doc = $parser->parse(qq~
<house>
  <rented>
    <name>james</name>
    <name>bob</name>
  </rented>
  <owned>
    <name>dave</name>
    <name>charles</name>
  </owned>
</house>
~);

for my $home ($doc->getElementsByTagName("owned")) {
	for my $name ($home->getElementsByTagName("name")) {
		for my $child ($name->getChildNodes) {
			printf( "%s\n", $child->getData) if $child->getNodeType eq TEXT_NODE;
		
		} 
	}
}

Open in new window

0
 

Author Closing Comment

by:rgbcof
ID: 35169786
Ah, getChildNodes was what I was looking for.  That's great.  Thanks.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Email validation in proper way is  very important validation required in any web pages. This code is self explainable except that Regular Expression which I used for pattern matching. I originally published as a thread on my website : http://www…
Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans

632 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question