У меня есть следующий XML:В Perl с использованием Mojo :: DOM в режиме XML, как я могу совместить содержимое субтитров?
<Product>
...
<TitleDetail>
<TitleType>01</TitleType>
<TitleElement>
<TitleElementLevel>01</TitleElementLevel>
<TitleText>This is the title I'm looking for</TitleText>
</TitleElement>
</TitleDetail>
...
</Product>
(Это ONIX, если вам интересно.)
Я хочу, чтобы извлечь название, тип 01. Я пробовал:
say $dom->at('TitleDetail[TitleType="01"] > TitleElement > TitleText')
но это не работает. Похоже, что синтаксис tag[attr=value]
действительно работает только для атрибутов.
Есть ли простой способ сделать то, что я хочу?
Это была одна ошибка, да, использовать '/' вместо '>' как маркерный сепараторе ... – mscha
'TitleDetail [TitleType = "01"]' [средства] (HTTP: // Mojolicious .org/perldoc/Mojo/DOM/CSS # SELECTORS) "* элемент' TitleDetail', значение атрибута 'TitleType' в точности равно' 01'. * «Очевидно, что неверно. К сожалению, вы не можете использовать один вызов для 'at', потому что подзапросы ограничены проверкой атрибутов, и ни один из селекторов не предоставляет средство проверки текста узла. – ikegami