Ejemplos XPath
De TW
Ejemplos de rutas XPath
Fichero de datos
Primero descarga este fichero Media:Nutrition.xml y guardalo en tu ordenador.
Intérprete XPath
Luego necesitarás un intérprete XPath.
Para probar los ejemplos en Linux puede usarse XML-Lint de xmlsoft.org que tiene un modo interactivo (shell).
Si tienes perl puedes usar este script y grabarlo como xp.pl:
#!/usr/bin/perl
use XML::XPath;
use XML::XPath::XMLParser;
my $xp = XML::XPath->new(filename => $ARGV[0] );
if( $xp->exists( $ARGV[0] ) ) {
print "Exists.\n";
}
my $nodeset = $xp->find( $ARGV[1] );
if( ref($nodeset) eq 'XML::XPath::Number' ) {
print "NUMBER: ", $nodeset, "\n";
exit 0;
}
foreach my $node ($nodeset->get_nodelist) {
print "NODE: ", XML::XPath::XMLParser::as_string($node),"\n";
}
Bajo Windows puede usarse Cooktop.
Ejemplos
./xp.pl Nutrition.xml '//food'
./xp.pl Nutrition.xml 'nutrition/food/name'
./xp.pl Nutrition.xml 'nutrition/food/vitamins/a'
./xp.pl Nutrition.xml 'nutrition/food[1]/name'
./xp.pl Nutrition.xml 'nutrition/food[2]/name'
./xp.pl Nutrition.xml 'nutrition/food[last()]/name'
./xp.pl Nutrition.xml 'nutrition/food/serving/@units'
./xp.pl Nutrition.xml 'nutrition/food/serving[@units="g"]'
./xp.pl Nutrition.xml 'nutrition/food[serving[@units="g"]]/name'
./xp.pl Nutrition.xml 'nutrition/food[serving[@units="cup"]]/name'
./xp.pl Nutrition.xml 'count(nutrition/food)'
./xp.pl Nutrition.xml 'nutrition/food/*[name()="calories"]'
./xp.pl Nutrition.xml 'nutrition/food/*[starts-with(name(),"ca")]'
./xp.pl Nutrition.xml 'nutrition/food[contains(name,"Dark")]'
./xp.pl Nutrition.xml 'nutrition/food[string-length(name) > 20]/name'
./xp.pl Nutrition.xml 'nutrition/food[string-length(name) < 10]/name'
./xp.pl Nutrition.xml 'nutrition/food[calories/@total > 300]/name'
./xp.pl Nutrition.xml 'nutrition/food[contains(name,"Chips")]/following-sibling::food/name'
./xp.pl Nutrition.xml 'nutrition/food/name'
./xp.pl Nutrition.xml 'nutrition/food[position() = floor( last() div 2 + 0.5 )]/name'
./xp.pl Nutrition.xml 'nutrition/food[position() = ceiling( last() div 2 + 0.5 )]/name'
./xp.pl Nutrition.xml 'nutrition/food[position() mod 2 = 0]/name'
./xp.pl Nutrition.xml 'nutrition/food[cholesterol > /nutrition/max-values/cholesterol]'
Categorías: Ejemplo | XML