in reply to Re^3: XML::LibXML problem
in thread XML::LibXML problem

Yes that will work but I am looking for just the next level only not the whole tree. So for instance
<library> <book attr1="zzz"> <title>xxxx</title> <author>yyyyy</author> </book> <book attr1="sssss"> ---- </book> <book attr1="dddd"> ---- </book> </library>
So, if i was at library then I just want all of the books, no title or author elements. And if I do * then I get back all of the elements from the whole tree. Regards, John

Replies are listed 'Best First'.
Re^5: XML::LibXML problem
by choroba (Cardinal) on Dec 29, 2011 at 16:18 UTC
    if I do * then I get back all of the elements from the whole tree
    Not true. Or at least I do not get it, and you should not get it either:
    perl -E ' use XML::LibXML; my $dom = XML::LibXML->load_xml(string => q{ <library> <book attr1="zzz"> <title>xxxx</title> <author>yyyyy</author> </book> <book attr1="sssss"> ---- </book> <book attr1="dddd"> ---- </book> </library> }); my ($l) = $dom->findnodes("/library"); say $_->getName for $l->findnodes("*[text()] | text()");' #text book #text book #text book #text
      OK, I have been running this again and obvioulsy I changed something (my millionth change of the day) and this has worked.
      So, query is /xs:schema/xs:element/xs:complexType/xs:sequence/xs:element/xs:complexType/xs:sequence/xs:element@name
      does work!
      many thanks for your patience and help. John