Leser: 17
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
use strict; use warnings; use XML::XPath; my $xp = XML::XPath->new(ioref => *DATA); print $xp->findnodes_as_string('/child::ZED_INVOIC02_CRG/child::IDOC/ child::E1EDK02/following::E1EDK02'); __DATA__ <ZED_INVOIC02_CRG> <IDOC BEGIN="1"> <E1EDK02 SEGMENT="1"> <QUALF>009</QUALF> </E1EDK02> <E1EDK02 SEGMENT="1"> <QUALF>020</QUALF> </E1EDK02> <E1EDK02 SEGMENT="1"> <QUALF>900</QUALF> </E1EDK02> </IDOC> </ZED_INVOIC02_CRG>
1
2
3
4
5
6
7
<E1EDK02 SEGMENT="1">
<QUALF>020</QUALF>
</E1EDK02><E1EDK02 SEGMENT="1">
<QUALF>900</QUALF>
</E1EDK02><E1EDK02 SEGMENT="1">
<QUALF>900</QUALF>
</E1EDK02>
Quotethe following axis contains all nodes in the same document as the context node that are after the context node in document order, excluding any descendants and excluding attribute nodes and namespace nodes
2010-02-14T14:07:27 murphyZitat aus der XPath Spezifikation:
Quotethe following axis contains all nodes in the same document as the context node that are after the context node in document order, excluding any descendants and excluding attribute nodes and namespace nodes
QuoteDie Angabe /child::ZED_INVOIC02_CRG/child::IDOC/child::E1EDK02 wählt als Satz von Referenzknoten alle drei E1EDK02-Elemente des Dokumentes aus, die nachfolgende Angabe ./following::E1EDK02 wählt dann alle E1EDK02-Elemente aus, die in der Dokumentordnung irgendwo hinter einem der Referenzknoten liegen: Einmal alle E1EDK02-Elemente bis auf das erste, denn sie liegen hinter dem ersten, und dann alle E1EDK02-Elemente bis auf die ersten beiden, denn sie liegen hinter dem zweiten.