2016-04-03 22 views
1

Ich bin neu in der XML- und XSLT-Programmierung. Kann jemand die Bedeutung von unter XPath Ausdruck erklären?Bedeutung dieses XPath-Ausdrucks

<xsl:apply-templates select="//Order[Header/string-length(ORDERID) > 0]/Header/SAP_WBSELEMENT[not(. = following::SAP_WBSELEMENT)]" /> 

Antwort

1

Bedeutung: SAP_WBSELEMENT Elemente auswählen, nur einmal diejenigen mit doppelten String-Werten einschließlich, dass die Kinder von Header Elementen sind, die Kinder aller Order Elemente im Dokument mit einem Header Kind mit einer ORDERID mit einem sind Nicht-leerer String-Wert.


Aufteilung: vom Ende des XPath Arbeiten wieder an die Front ...

Select SAP_WBSELEMENT Elemente, mit Ausnahme derjenigen mit doppelten String-Werte,

SAP_WBSELEMENT[not(. = following::SAP_WBSELEMENT)] 

das sind Kinder von Header Elemente,

Header/ 

, die mit einem nicht leeren String-Wert mit einem ORDERID Kinder dieser Order Elemente mit einem Header Kind sind,

Order[Header/string-length(ORDERID) > 0]/ 

beliebige Stelle im Dokument,

// 
+1

Ich würde den Hinweis hinzufügen, dass '[nicht (. = folgend :: SAP_WBSELEMENT)] ist wahrscheinlich sehr ineffizient im Vergleich zu anderen Möglichkeiten, Dubletten zu eliminieren, es sei denn, das Quelldokument ist tatsächlich sehr klein. –