Учитывая следующий XML:XPath подстрока-после
<?xml version="1.0"?>
<purchaseOrder orderDate="1999-10-20">
<shipTo country="US">
<name>Alice Smith</name>
<street>123 Maple Street</street>
<city>Mill Valley</city>
<state>CA</state>
<zip>90952</zip>
</shipTo>
<billTo country="US">
<name>Robert Smith</name>
<street>8 Oak Avenue</street>
<city>Old Town</city>
<state>PA</state>
<zip>95819</zip>
</billTo>
<comment>Hurry, my lawn is going wild!</comment>
<items>
<item partNum="872-AA">
<productName>Lawnmower</productName>
<quantity>1</quantity>
<USPrice>148.95</USPrice>
<comment>Confirm this is electric</comment>
</item>
<item partNum="926-AA">
<productName>Baby Monitor</productName>
<quantity>1</quantity>
<USPrice>39.98</USPrice>
<shipDate>1999-05-21</shipDate>
</item>
</items>
</purchaseOrder>
, как я выбираю '98' из USPrice во 2-й ст. Я пробовал:
purchaseOrder/items/item[USPrice[text()='39.98']]/USPrice/substring-after(.,'.')
но продолжают давать мне ошибку 'has an invalid token'
если я пытаюсь:
purchaseOrder/items/item[USPrice[text()='39.98']]/USPrice/text()[substring-after(.,'.')]
или
purchaseOrder/items/item[USPrice[text()='39.98']]/USPrice[substring-after(text(),'.')]
Я получаю '39.98'
, что неправильно слишком.
Я тестирую с помощью сайта здесь:
http://www.xmlme.com/XpathTool.aspx
Знаете ли вы, что XPath 2.0 для .NET? – smolesen
@smolesen Проверьте ответы на этот вопрос: http://stackoverflow.com/q/1525299/26396 –
Я знаю, что .NET поддерживает только XSLT v1.0, поэтому я также подозреваю его XPATH v1.0. Я думаю, что есть сторонние реализации, эта ссылка имеет больше информации http://stackoverflow.com/questions/1525299/xpath-and-xslt-2-0-for-net – Treemonkey