Я пытаюсь написать подпрограмму на Perl, которая удалит данный узел в XML, если ему предоставлены текстовые значения некоторых дочерних узлов.
Учитывая XML как:
<Path>
<To>
<My>
<Node>
<ChildA>ValA</ChildA>
<ChildB>ValB</ChildB>
<ChildC>ValC</ChildC>
</Node>
</My>
</To>
</Path>
<!-- A lot of siblings follow... -->
Я использую выражение XPath:
/Path/To/My/Node[ChildA="ValA" and ChildB="ValB" and ChildC="ValC"]
Когда я пытаюсь запустить свой скрипт, я получаю сообщение об ошибке:
Error in XPath expression
/Path/To/My/Node[ChildA="ValA" and ChildB="ValB" and ChildC="ValC"] at
ChildA="ValA" and ChildB="ValB" and ChildC="ValC" at Twig.pm line 3353
Я в растерянности из-за этого и ищу предложения. Я пытался погуглить, но не могу найти рабочих примеров использования предикатов, подобных этому, в XML::Twig
. Я не знаю, в чем проблема в моем синтаксисе XPath или как я использую XML::Twig
.
Для хорошей меры я также попробовал:
/Path/To/My/Node[ChildA/text()="ValA" and ChildB/text()="ValB" and ChildC/text()="ValC"]
Не повезло и с этим. Какое решение?