2016-04-03 3 views
1

Я новичок в программировании XML и XSLT. Может ли кто-нибудь объяснить смысл ниже выражения XPath?Значение выражения XPath

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

ответ

1

Значение: Выберите SAP_WBSELEMENT элементов, в том числе с повторяющимися значениями строк только один раз, которые являются потомками Header элементов, которые являются потомками каких-либо Order элементов в документе с Header ребенком с ORDERID с непустое строковое значение.


Разбивка: Работа с конца XPath обратно на фронт ...

Выберите SAP_WBSELEMENT элементы, за исключением тех, с повторяющимися значениями строк,

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

, которые являются детьми Header элементов,

Header/ 

, что дети этих Order элементов с Header ребенка с ORDERID с непустым значением строки,

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

в любом месте документа,

// 
+1

Я бы добавил совет, что '[not (. = следующий :: SAP_WBSELEMENT)], вероятно, будет очень неэффективным по сравнению с другими способами устранения дубликатов, если только исходный документ не очень мал. –

Смежные вопросы