найти всех потомков, которые имеют текст в любом элементе, который начинается с чего-то в XML - PullRequest
1 голос
/ 18 октября 2019

Привет. Я пытаюсь найти все корневые узлы / потомки с любым дочерним узлом с текстом, который начинается с пространства имен в следующем формате: AAA __

<profile>
       <apexClass>
               <name>BPG__test</name>
       </apexClass>
        <field>
               <name>BPG__test</name>
       </filed>
</profile>

Итак, я хочу захватить любой из корневых узлов. узлы, т.е. apexClass, поле с текстовым узлом, которое начинается с BPG__c, но (BPG) может иметь любое имя и длину. Я ищу примеры в xpath для этого.

1 Ответ

0 голосов
/ 18 октября 2019

Предполагается, что в тексте есть хотя бы один не подчеркнутый символ.

Код:

    <profile>
       <apexClass>
               <name>BPG__test</name>
       </apexClass>
        <field>
               <name>test</name>
       </field>
  <field>
               <name>c__test</name>
       </field>
  <field>
               <name>__test</name>
       </field>
</profile>

Это выражение xpath:

//*[name[string-length(substring-before(text(),'__'))>0]]/name()

Выходы:

apexClass
field
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...