XML и файлы XSLT 2.0 для этого вопроса находятся по адресу https://xsltfiddle.liberty -development.net / 6qVRKwX / 3
Я пытаюсь «переместить» элемент перед выводомраздел HTML.Этот элемент был создан во время первой части преобразования ) с использованием @mode
для вставки номеров сносок в текст.В первом режиме fn-add-marker
создается <fn-marker/>
для хранения номера сноски.Затем второй режим number
вставляет увеличенные номера сносок.Все это прекрасно работает (до строки 52 и затем после 68 в скрипте XSLT).
Теперь мне нужно «переместить» элемент в элемент родственного элемента, который породил его в вышеуказанном режиме.Я объединил это с выводом HTML: последняя идея заключается в том, что элемент <tei:seg>
преобразуется в HTML <p>
, так что это:
<seg type="dep_event">text</seg><fn-marker>incremented no.</fn-marker>
Теперь становится этим HTML (где seg
= p
и fn-marker
= sup
:
<p>text<sup>incremented no.</sup></p>
, т. Е. При выполнении условия сноска помещается внутри элемента-брата, который содержится в <p>
.
Код, который я вставил (ниже), работает для 3 из 4 шагов, необходимых для выполнения этого шага. Кажется, что код, связанный с шагом 3, не находит значение в <fn-marker/>
. Но если я удаляю все это, значение фактическиЭто заставляет меня думать, что это проблема режимов.
Код ниже делает это:
выводит каждый экземпляр <tei:seg @type="dep_event>"
в <p>
работы
создание <sup>
внутри <seg>
, которое соответствует условию брата работы
скопировать текст () содержимого <fn-marker>
в <sup>
, который удовлетворяет условию брата не работает
уничтожить старые <fn-marker>1</fn-marker>
работы
Ссылаясь на номера строк в https://xsltfiddle.liberty -development.net / 6qVRKwX / 3 :
строка 56-63:
<xsl:template match="tei:seg[@type='dep_event']">
<p>
<xsl:apply-templates/>
<xsl:if test="following-sibling::node()[1][self::tei:fn-marker]">
<!-- next line of code does not find a value in /text() -->
<sup><xsl:value-of select="./following-sibling::node()[1][self::tei:fn-marker/]text()"/></sup>
</xsl:if>
</p>
</xsl:template>
строка 66:
<xsl:template match="tei:fn-marker[preceding-sibling::node()[1][self::tei:seg[@type='dep_event']]]"/>
Заранее спасибо.