XSLT: как получить содержимое исходного текста

У меня есть следующая таблица стилей, которую я создал с большой помощью от всех вас!

 <xsl:template match = "/">
    <xsl:for-each select = "$files">
    <xsl:result-document href = "{substring-before(document-uri(), '.xml')}.txt" method = "text">
Kuerzel;AT/NT;Stelle;Zitat
<xsl:apply-templates select = "//note"></xsl:apply-templates>
    </xsl:result-document>
    </xsl:for-each>
 </xsl:template>
      
   
   <xsl:template match = "//note">
      <xsl:choose>
         <xsl:when test = "child::*[1][self::ref[@type='biblical']]">
            <xsl:for-each select = "child::*[@type='biblical']/@cRef">
               <xsl:value-of select = "."/>
               <xsl:text>;</xsl:text>
            </xsl:for-each>
            <xsl:text></xsl:text>
            <xsl:text>test;</xsl:text>
            <xsl:value-of select = "."/>
            <xsl:choose>
               <xsl:when test = "ancestor::q[1]"> <!-- this is the part in question -->
                  <xsl:value-of select = "ancestor::q[1]"></xsl:value-of>
                  <xsl:text>;</xsl:text>
               </xsl:when>
               <xsl:otherwise></xsl:otherwise>
            </xsl:choose>
            
            <xsl:text>&#10;</xsl:text>
            
         </xsl:when>
      </xsl:choose>
   </xsl:template>

в этом искусстве XML предполагается захват <q> перед <note><ref type = "biblical">:

<text><body>
<div><head facs = "#facs_13_TextRegion_1624022854326_321">
   <pb facs = "#facs_13" xml:id = "img_0013" n = "4v"/>            
   <lb facs = "#facs_13_line_1624022854428_324" n = "N001"/>Von dem Menschen vor dem fall.</head>
   <p facs = "#facs_13_TextRegion_1624022900738_331">
      <lb facs = "#facs_13_line_1624022854429_325" n = "N001"/>Gott hat von anfang den Menschen erschaffen
      <lb facs = "#facs_13_r2l4" n = "N002"/><note place = "margin-left" facs = "#facs_13_TextRegion_1624023026742_370">
         <lb facs = "#facs_13_r1l1" n = "N001"/>Gen. 1.</note>zu seinem Ebenbilde und gleichnuß<note type = "annotation">Vgl. <ref type = "biblical" cRef = "Gn_1,26-27">Gen 1,26f.</ref></note> und in mit
      <lb facs = "#facs_13_r2l5" n = "N003"/>gnaden geziert, auch durch die erblich <w>gerechtig<pc>-</pc>
         <lb facs = "#facs_13_r2l7" n = "N004"/>keit</w> dermassen zugerichtet, das er in allen <w>kreff<pc>-</pc>
            <lb facs = "#facs_13_r2l8" n = "N005"/>ten</w> deß leibs und der seelen gantz recht were und von <w>kei<pc>-</pc>
               <lb facs = "#facs_13_r2l9" n = "N006"/>nen</w> bösen unnd unordenlichen bewegungen angefochten
      <lb facs = "#facs_13_r2l10" n = "N007"/>wurde, sonder das inn ime das fleisch dem Geist und die
      <lb facs = "#facs_13_r2l11" n = "N008"/>understen krefften der seele den obersten (welche allein zu
      <lb facs = "#facs_13_r2l12" n = "N009"/>dem guten anweyßten) gehorsam weren.
   </p>
   <p facs = "#facs_13_TextRegion_1624022922087_339">
      <lb facs = "#facs_13_line_1624022900872_333" n = "N001"/>Da nun das<note type = "crit_app"><bibl><ref type = "bibl" target = "#mehlhausen_augsburger_interim"><surname type = "editor">Mehlhausen</surname>, Augsburger Interim</ref>, S.&#x00A0;36</bibl>: des.</note> menschen gemüt dermassen wol <w>zuge<pc>-</pc>
         <lb facs = "#facs_13_r2l14" n = "N002"/><note place = "margin-left" facs = "#facs_13_TextRegion_1624023026742_369">
            <lb facs = "#facs_13_r1l2" n = "N001"/>Eccle. 15.</note>richtet</w> was, <q>hat in Gott gelassen inn der hand seines <w>eig<pc>-</pc>
               <lb facs = "#facs_13_r2l15" n = "N003"/>nen</w> Raths</q><note type = "annotation"><ref type = "biblical" cRef = "Sir_15,14">Sir 15,14</ref>.</note>, Also weyt, das er nicht weniger macht hette
      <lb facs = "#facs_13_r2l16" n = "N004"/>zu wölen das gut als das böse.
   </p>
   <p facs = "#facs_13_TextRegion_1624022943633_345">
      <lb facs = "#facs_13_r2l17" n = "N001"/>Wo sich dann der Mensch diser seiner freiheit recht
      <lb facs = "#facs_13_r2l18" n = "N002"/>gebraucht, auch den gebotten, die ime Gott selbs gegeben,
      <lb facs = "#facs_13_r2l19" n = "N003"/>gehorsam gewesen were, so hette er die güter und <w>gerechtig<pc>-</pc>
         <lb facs = "#facs_13_r2l20" n = "N004"/>keit</w>, die er empfangen, ime selbst und allen seinen <w>nachkom<pc>-</pc>
            <lb facs = "#facs_13_r2l21" n = "N005"/>men</w> erhalten, auch ime und inen nicht gemangelt, <w>frümb<pc>-</pc>
               <lb facs = "#facs_13_r2l22" n = "N006"/>klich</w> und seligklich zuleben. Es het ine auch weder hunger
      <lb facs = "#facs_13_r2l23" n = "N007"/>noch durst, hitz noch kelte, schmertz noch kranckheit noch
      <lb facs = "#facs_13_r2l24" n = "N008"/>der todt betrübt oder geengstiget. Besonder het er alle <w>sün<pc>-</pc>
         <lb facs = "#facs_13_r2l25" n = "N009"/>den</w> und gebrechen gemitten und<note type = "crit_app">Fehlt <bibl><ref type = "bibl" target = "#mehlhausen_augsburger_interim"><surname type = "editor">Mehlhausen</surname>, Augsburger Interim</ref>, S.&#x00A0;36</bibl>.</note> von den straffen als <w>be<pc>-</pc>
            <lb facs = "#facs_13_r2l26" n = "N010"/>lonungen</w> der sünden sich keinerley gefahr weder für sich
      <lb facs = "#facs_13_r2l27" n = "N011"/>selbst noch seine nachkommen besorgen dürffen.
   </p>
</div>
</body></text>

Мой ожидаемый результат примерно такой:

Kuerzel;AT/NT;Stelle;Zitat
Gn_1,26-27;test;Vgl. Gen 1,26f.;
Sir_15,14;test;Sir 15,14.;hat Gott gelassen inn der hand seines...

И поэтому я добавил соответствующую строку в шаблон, надеясь таким образом решить эту проблему. Однако, похоже, это не работает :-/ В качестве альтернативы я мог бы также искать подстроку «Vgl». в элементе примечания, а затем перейдите к <q> непосредственно перед ним. Кто-нибудь может мне помочь, пожалуйста!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
26
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, что между элементом q и элементом note с ref/@type = 'biblical' нет никакой связи предков.

Возможно, preceding::q[1] — это то, что вы ищете, но вы мешаете нам помочь, если вы не сократите образцы до минимума, чтобы продемонстрировать проблему.

Большое вам спасибо, и, конечно, вы правы, я должен был сильно сократить пример! Но, как обычно, ваше решение также работает! Спасибо

kev1807 01.04.2022 14:04

Другие вопросы по теме