Недавно я узнал, что нотация Кларка в XML. Если XML выглядит примерно так:
<srw:searchRetrieveResponse
xmlns:srw="http://www.loc.gov/zing/srw/"
...
<srw:record>
...
<dc:title>The C programming language</dc:title>
...
</srw:record>
С lxml
в Python вы можете разобрать его следующим образом:
record_title = r.find('.//{http://purl.org/dc/elements/1.1/}title')
Конструкция .//{namespace uri}tag name
была новой для меня. Я думаю, что это очень полезно для наборов данных, с которыми вы не знакомы, потому что вам нужно только знать пространство имен uri (которое находится в заголовке XML), префикс и имя тега, чтобы найти его. Поэтому нет необходимости разбираться в XML-дереве.
Теперь я обычно пишу XSL для XML с помощью браузера: просто укажите XSL-лист вверху в своем XML-файле, дважды щелкните его, и браузер покажет, что из него сделал XSL. Так можно ли использовать нотацию Кларка в XSL / XSLT? Насколько я мог узнать, ответ - нет. Некоторые Googling привели меня к библиотекам для PHP и Perl, которые поддерживают его, но, очевидно, XSLT нет.
Я что-то пропустил? Если бы я этого не сделал, что могло быть причиной (-ами), что XSLT не поддерживает это?