Мне было предложено написать несколько сценариев, которые читаются в файлах конфигурации XML, которые используют либеральное использование XLink для включения XML, хранящегося в нескольких файлах. Например:Как обрабатывать ссылки XLink с помощью lxml в python?
<Environment xlink:href="#{common.environment}" />
(# {common.environment} это свойство заполнитель, который получает разрешен первый и могут быть проигнорированы здесь.) Компания имеет стандартизированный на LXML для дополнительной обработки XML в Python.
Я искал примеры или документы о том, как обрабатывать эти вхождения под этими ограничениями и, как минимум, включать их содержимое в родительский XML-документ, как если бы они были фактически вставлены в этот момент. Я был немного удивлен, найдя там немного драгоценного материала, до такой степени, что мне интересно, не хватает ли я чего-то очевидного. Я нашел общие документы о том, что такое XLink, и я нашел несколько примеров того, как он используется в контексте обработки XSLT. Однако это не помогло мне.
Может ли кто-нибудь предложить какие-либо рекомендации о том, как наилучшим образом реализовать это, будь то документы, примеры или только некоторые советы из опыта? Благодарю.
UPDATE: Вот до и после того, как, например:
Перед. Это то, что на самом деле в файле разбираемый:
<Root>
<Environment xlink:href="#{common.environment}" />
</Root>
Это то, что находится в файле, # {} common.environment ПОСТАНОВЛЯЕТ:
<?xml version="1.0" encoding="UTF-8"?>
<Environment>
<Property key="hello.world" value="foo" />
<Property key="bar.baz" value="fred" />
</Environment>
После. Это как анализатор «видит» это после того, как вся обработка выполняется:
<Root>
<Environment>
<Property key="hello.world" value="foo" />
<Property key="bar.baz" value="fred" />
</Environment>
</Root>
Это радикально упростили пример того, что происходит там.
Почему бы не использовать XInclude вместо XLink? – mzjn
Если бы это было до меня, XInclude это было бы. К сожалению, сотни таких конфигурационных файлов используются десятками программных систем по всей компании с использованием XLink, как в моем примере. Существует много производственного кода, написанного на Java и C, которые читают эти файлы и ищут xlink: экземпляры href для включения. (Мне было поручено сделать что-то на питоне.) Убедительное управление для «исправления» этого никогда не произойдет. И вот я здесь. – tima
Что такое ожидаемый результат, когда обрабатывается что-то вроде ' '? Можете ли вы предоставить пример «до и после» с более подробной информацией? –
mzjn