Я не уверен, что это то, чего вы пытаетесь достичь, но следующий XPath (2.0):
//(text()|@*)[contains(.,'{[::')][contains(.,'::]}')]/substring-before(substring-after(.,'{[::'),'::]}')
вернет любое значение текста или атрибута, содержащее {[::
и ::]}
.
Например, приведенный выше XPath, используемый в этом XML:
<add key="DSN" value="{[::/configration/Session/DSN::]}">
<test>{[::/another/path::]}</test>
</add>
вернет:
/configration/Session/DSN
/another/path
Надеюсь, это поможет.