Выражение Xpath в Android для узла с двумя дочерними текстовыми узлами
У меня есть образец XML (платформа Android), и я хотел бы знать самый простой и эффективный подход для получения значения узла текстового узла.
<div id="myid">
<img src="..." width="1" height="2" alt="Text" />
<p><strong>Unwanted text</strong>WANTED TEXT</p>
</div>
Я могу легко получить это с XPath 2.0 как:
//div[@id='myid']//p/text() => WANTED TEXT
но в андроиде у меня получается...
//div[@id='myid']//p/text() => Unwanted text WANTED TEXT
но как я могу выбрать это в Android XPath без нежелательного текста?
1 ответ
Я не уверен, что Android ведет себя так, как ожидалось. Однако попробуйте эти два утверждения, чтобы увидеть, возвращают ли они желаемые результаты.
Получите первый узел, который не является элементом:
//div[@id='myid']//p/node()[not(self::*)]
Получите первый узел, который является текстовым узлом:
//div[@id='myid']//p/node()[self::text()]
(Обратите внимание, что я не смог протестировать их на Android, поэтому не могу точно сказать, что они вернут).