В моем исходном XML любой элемент может иметь атрибут @n.Если это так, я хочу вывести его до обработки элемента и всех его дочерних элементов.
Например,
<line n="2">Ipsum lorem</line>
<verse n="5">The sounds of silence</verse>
<verse>Four score and seven</verse>
<sentence n="3">
<word n="1">Hello</word>
<word n="2">world</word>
</sentence>
У меня есть шаблоны, соответствующие "строке",«стих», «предложение» и «слово».Если какой-либо из этих элементов имеет значение @n, я хочу вывести его перед тем, что сгенерирует шаблон элемента.
Выше может получиться что-то вроде
2 <div class="line">Ipsum lorem</span>
5 <span class="verse">The sounds of silence</span>
<span class="verse">Four score and seven</span>
3 <p class="sentence">
1 <span class="word">Hello</span>
2 <span class="word">world</span>
</p>
, где шаблоныдля "line", "verse" и т. д. генерируются элементы div, span и p.
Как я должен думать об этой проблеме?- сопоставить атрибут, а затем применить шаблоны к его родителю?(Какой будет синтаксис для этого?) Поместить шаблон вызова в начало шаблона каждого элемента?(Это непривлекательно.) Что-то еще?(Возможно!)
Я попробовал несколько вещей, но получил либо бесконечный цикл, либо ничего, либо обработку атрибута, а затем потомков его родителя, но не самого родителя.