ianxharris has asked for the wisdom of the Perl Monks concerning the following question:
I've got a problem whereby I need to compare two xml files for differences. I've already been through XML::SemanticDiff but it's not quite what I'm after as once a rogue element is introduced it reports the rest of the parent element's children as changed too (quite rightly).
I'm not really interested in structural changes as my concerns are around whether or not I want to send the file for translation or not. i.e. all I need to do is compare the two document trees and for any content nodes in file 2 (changed file) that do not exatcly match a (any) node in file 1 (original) mark them for translation.
My problem is that I can't find a way to make XML::Xpath expose the actual Xpath of the node it's processing.
eg.
my $xpath = XML::XPath->new( filename => $new_xml );
my $nodeset = $xpath->find( "/" );
foreach my $node ( $nodeset->get_nodelist ) {
print XML::XPath::XMLParser::as_string( $node ) . "\n";
}
Cheerfully prints the file back to the commandline. Does anyone know if there's a way to actually print the XPath of $node.
Greatful thanks for any advice.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: XML::Xpath - Can I get the XPath of the current node?
by Corion (Patriarch) on Feb 27, 2008 at 12:13 UTC | |
by admiral_grinder (Pilgrim) on Feb 29, 2008 at 19:16 UTC |