Выражение 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&nbsp;WANTED TEXT

но как я могу выбрать это в Android XPath без нежелательного текста?

1 ответ

Я не уверен, что Android ведет себя так, как ожидалось. Однако попробуйте эти два утверждения, чтобы увидеть, возвращают ли они желаемые результаты.

Получите первый узел, который не является элементом:

//div[@id='myid']//p/node()[not(self::*)]

Получите первый узел, который является текстовым узлом:

//div[@id='myid']//p/node()[self::text()]

(Обратите внимание, что я не смог протестировать их на Android, поэтому не могу точно сказать, что они вернут).

Другие вопросы по тегам