Действителен ли XML? Из того, что я знаю,
ответ да, но я не прав?
Да, ваш XML действителен. Кроме того, вопреки комментарию выше, нет ничего плохого в том, что в XML смешано содержимое (текст и элементы смешаны) Все зависит от контекста и того, как используется XML. Например, было бы почти невозможно создать технические руководства без смешанного контента. (Хорошим примером являются ссылочные элементы, смешанные с текстом в элементах абзаца.)
Как я могу изменить XSL, чтобы
получить вторую строку (или даже больше
линий в моем случае, чем я показал)?
Я не совсем уверен, чего именно вы пытаетесь достичь, но причина, по которой вы не видите вторую строку текста, заключается в том, что вы сопоставляете только первую строку с первой <xsl:value-of select="text()"/>
.
Я не уверен, что это сработает на вашем полном наборе данных XML, но вы можете заменить оба шаблона level_one
и level_two
на один шаблон, который соответствует всем text()
:
<xsl:template match="text()">
<xsl:value-of select="."/>
<br/>
</xsl:template>
Это дает следующий вывод:
My first line of text on level_one
<br/>
My only line of text on level_two
<br/>
My second line of text on level_one
<br/>
Вы также можете сузить соответствие, указав level_one и level_two родителей:
<xsl:template match="level_one/text()|level_two/text()">
<xsl:value-of select="."/>
<br/>
</xsl:template>
Это дает точно такой же вывод, но оставляет любой другой текст открытым для сопоставления в других шаблонах.
Надеюсь, это поможет.