プレフィックスのバインディングを対応する名前空間に登録した後、次を使用します。
/*/s:Body
/s:About_ServiceResponse
/s:About_ServiceResult
/a:businessServiceVersionStructureField
/a:BusinessServiceVersionStructureType
/a:businessServiceVersionNameField
/text()
この XPath 式が次の XML ドキュメントに対して評価されると(提供されたものはひどく不正な形式であり、整形式にするのにかなりの時間を費やす必要がありました)。
<s:Envelope xmlns:s="http://...">
<s:Body>
<About_ServiceResponse xmlns="http://...">
<About_ServiceResult xmlns:a="http://">
<a:businessServiceVersionStructureField>
<a:BusinessServiceVersionStructureType>
<a:businessServiceDBVersionNameField>V001</a:businessServiceDBVersionNameField>
<a:businessServiceVersionNameField>Some Service^V100</a:businessServiceVersionNameField>
</a:BusinessServiceVersionStructureType>
</a:businessServiceVersionStructureField>
</About_ServiceResult>
</About_ServiceResponse>
</s:Body>
</s:Envelope>
正確に必要なテキスト ノードが選択されます。
Some Service^V100
このテキスト ノードの親である要素を選択する場合は、次を使用します。
/*/s:Body
/s:About_ServiceResponse
/s:About_ServiceResult
/a:businessServiceVersionStructureField
/a:BusinessServiceVersionStructureType
/a:businessServiceVersionNameField
XSLT ベースの検証:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:s="http://..." xmlns:a="http://">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select=
"/*/s:Body
/s:About_ServiceResponse
/s:About_ServiceResult
/a:businessServiceVersionStructureField
/a:BusinessServiceVersionStructureType
/a:businessServiceVersionNameField
/text()
"/>
=======
<xsl:copy-of select=
"/*/s:Body
/s:About_ServiceResponse
/s:About_ServiceResult
/a:businessServiceVersionStructureField
/a:BusinessServiceVersionStructureType
/a:businessServiceVersionNameField
"/>
</xsl:template>
</xsl:stylesheet>
この変換が同じ XML ドキュメント (上記) に対して適用されると、選択されたノードが出力されます("=======" を区切り記号として使用):
Some Service^V100
=======
<a:businessServiceVersionNameField xmlns:a="http://" xmlns="http://..." xmlns:s="http://...">Some Service^V100</a:businessServiceVersionNameField>