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.
In reply to XML::Xpath - Can I get the XPath of the current node? by ianxharris
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |