В документе XML я намерен вставлять элементы между двумя самозакрывающимися элементами. Рассмотрим следующий пример:Вставить элемент между самозакрывающимися элементами
<body>
<p>Lorem ipsum dolor sit amet,
<lb/>consectetur adipisici elit,
<lb/>sed eiusmod tempor incidunt
<lb/>ut labore et dolore magna aliqua.
</p>
<p>Ut enim ad minim veniam,
<lb/>quis nostrud exercitation ullamco
<lb/>laboris nisi ut aliquid
<lb/>ex ea commodi consequat.
</p>
</body>
Таким образом, существуют такие конструкции, как параграфы (p) и разрывы строк (фунты). Моя цель состоит в том, чтобы поместить линии в элементы. Поэтому я хотел бы получить следующий результат преобразования (или аналогичный):
<body>
<p>
<l>Lorem ipsum dolor sit amet,</l>
<l>consectetur adipisici elit,</l>
<l>sed eiusmod tempor incidunt</l>
<l>ut labore et dolore magna aliqua.</l>
</p>
<p>
<l>Ut enim ad minim veniam,</l>
<l>quis nostrud exercitation ullamco</l>
<l>laboris nisi ut aliquid</l>
<l>ex ea commodi consequat.</l>
</p>
</body>
Возможно ли это с помощью XSLT? Похоже, что это не типичное приложение, поскольку я еще не нашел подхода. Я был бы признателен за любую помощь.
EDIT: А вот более сложный вариант задачи, который добавляет: (1) выделены, перекрывая проходы (Hi) и перекрывающийся элемент (2) «Выбор», из которых только «СИК» элемент должен быть сохранен.
<body>
<p>Lorem ipsum dolor sit amet,
<lb/>consectetur adipisici elit,
<lb/>sed eiusmod tempor <hi>incidunt
<lb/>ut labore</hi> et dolore magna aliqua.
</p>
<p>Ut enim ad minim <choice>
<sic>venima, <lb/>quis noster</sic>
<corr>veniam, quis nostrud</corr>
</choice> exercitation ullamco
<lb/>laboris nisi ut aliquid
<lb/>ex ea commodi consequat.
</p>
</body>
Желаемый результат будет, например, с (1) номера строк и (2) @cont атрибут, который указывает продолжение расщепленным элемента.
<body>
<p>
<l n="1">Lorem ipsum dolor sit amet,</l>
<l n="2">consectetur adipisici elit,</l>
<l n="3">sed eiusmod tempor <hi cont="true">incidunt</hi></l>
<l n="4"><hi cont="false">ut labore</hi> et dolore magna aliqua.</l>
</p>
<p>
<l n="5">Ut enim ad minim <sic cont="true">venima,</sic></l>
<l n="6"><sic cont="false">quis noster</sic> exercitation ullamco</l>
<l n="7">laboris nisi ut aliquid</l>
<l n="8">ex ea commodi consequat.</l>
</p>
</body>
Это практически охватывает наихудшие случаи, с которыми я столкнулся. Я ценю вашу помощь!
Вы можете использовать XSLT 2.0 как Saxon 9 или XmlPrime?В этом случае это задание для ' xsl: template> '. –
Да, я использую Oxygen, поэтому есть некоторые варианты в отношении XSLT-процессоров. –