Вот XML-файл, представляющий список элементов и их уровни приоритета по шкале от 1 до 3. Когда файл был создан, уровни приоритета не были установлены:XSL: Как мне навалом задавать пустые атрибуты?
<root>
<section number="1">
<group number="1.1">
<item date="today" priority="Undefined"><title>Item1</title></item>
<item date="today" priority="Undefined"><title>Item2</title></item>
<item date="yesterday" priority="Undefined"><title>Item3</title></item>
</group>
<group number="1.2">
<item date="tomorrow" priority="Undefined"><title>Item4</title></item>
<item date="today" priority="Undefined"><title>Item5</title></item>
<item date="yesterday" priority="Undefined"><title>Item5</title></item>
</group>
</section>
</root>
Мне был присвоен список приоритетов по позиции позже. Они пришли ко мне в обычный текстовый файл, но я могу поместить их в любой формат, в том числе XML. Просто чтобы показать, как пример:
<priorities>
<item1 p="1">
<item2 p="3">
<item3 p="1">
<item4 p="2">
<item5 p="3">
<item6 p="3">
</priorities>
Я пытаюсь написать XSL преобразование, которое устанавливает приоритет атрибутов для каждого элемента соответствующим образом.
На мой взгляд, он должен работать, как это (у меня уже есть шаг 1):
- Используйте тождественное преобразование
- Создание своего рода структуры данных ('Item1': '1', ' Элемент2 ':' 3' , ...)
- Создать шаблон:
- соответствует элементу элемент
- Проверяет TITLE
- Смотрит, что название в структуре данных
- Устанавливает уровень приоритета надлежащим (я думаю, что я знаю как сделать эту часть)
С другой стороны, я подумал о другом пути:
- Используйте идентификатор преобразования (уже написаны)
- Создание 3 структуры данных:
- $ Р1: = ('Элемент1', 'Элемент2')
- $ P2: = ('Item4')
- $ Р3: = ('Элемент2', 'Item5', 'Item6')
- Создайте 3 шаблона, по одному для каждого уровня приоритета. Например, шаблон Р1:
- совпадает с элементом элемент
- Проверяется TITLE
- Проверяет, является ли указанное в заголовке является членом $ P1:
- Если да, то установить уровень приоритета соответствующим
- Если нет, то ничего не делать
ПРИМЕЧАНИЕ: Это дистиллированный пример; Я пытаюсь создать решение, которое может обрабатывать XML-файл с примерно 600 элементами элементов с очень длинными строками в качестве TITLE.
Я искал поиски и поиск, и мне было интересно, возможно ли такое.
Использование кислорода 16.
Это трудно понять ваше описание. Откуда берутся значения приоритетов? Можете ли вы предоставить их в качестве другого документа XML? Кроме того, вы можете использовать XSLT 2.0? –
Я обновил сообщение, чтобы уточнить, что я могу получить значения приоритета в любом формате, который я хочу, включая XML. Кроме того, я использую Oxygen 16, так что да, я могу использовать XSLT 2.0. Спасибо за то, что вы прояснили. – mdslup
http: // stackoverflow.com/help/someone-answers –