У меня есть XML, где есть 10 phrase
узлов.не удалось получить значение узла с позицией
Я пытаюсь получить вторую фразу, используя приведенный ниже XSLT.
<xsl:value-of select="document(concat('C:\Users\u0138039\Desktop\Proview\Files\','MCPV1_
ORD_34.XML'))/chapter//phrase[2]"/>
к моему удивлению это не работает.
и когда я использую ниже.
<xsl:value-of select="document(concat('C:\Users\u0138039\Desktop\Proview\Files\','MCPV1_
ORD_34.XML'))/chapter//phrase"/>
Входной XML:
<?xml version="1.0" encoding="utf-8"?>
<index>
<secondaryie>certification, 34/12</secondaryie>
</index>
title.xml
<?xml version="1.0" encoding="utf-8"?>
<entry>
<file name="MCPV1_ORD_30.xml"/>
<file name="MCPV1_ORD_31.xml"/>
<file name="MCPV1_ORD_32.xml"/>
<file name="MCPV1_ORD_33.xml"/>
<file name="MCPV1_ORD_34.xml"/>
<file name="MCPV1_ORD_35.xml"/>
</entry>
Глава 34.xml
<?xml version="1.0" encoding="utf-8"?>
<chapter num="34">
<section level="sect1" number-type="manual" num="nonum">
<para>
<phrase>34/0/2</phrase>
</para>
</section>
<section level="sect1" number-type="manual" num="nonum">
<para>
<phrase>34/0/3</phrase>
</para>
</section>
<section level="sect1" number-type="manual" num="nonum">
<para>
<phrase>34/1</phrase>
</para>
<para>
<phrase>34/1/1</phrase>
</para>
</section>
</chapter>
XSLT:
<xsl:template match="index">
<div class="index">
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="secondaryie">
<div class="secondaryie">
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="text()">
<xsl:analyze-string select="." regex="([\w]+)/([\w]+)">
<xsl:matching-substring>
<xsl:variable name="prent">
<xsl:for-each select="document('C:\Users\u0138039\Desktop\Proview\Files\title.xml')/entry/file">
<xsl:value-of select="document(concat('C:\Users\u0138039\Desktop\Proview\Files\',./@name))/chapter[//phrase=.]/@num"/>
</xsl:for-each>
</xsl:variable>
<a href="{$prent}">
<xsl:value-of select="."/>
</a>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
процесс я запустить входной XML с помощью XSLT, и это будет цикл через title.xml, а затем сопоставить регулярное выражение с phrase
, находящейся внутри документов (здесь я взял 34 для справки), и он должен напечатать значение главы.
В моей XML 34/12
присутствует поэтому он должен напечатать <a href="34"/>
где, как и в моем выходе он показывает <a href=""/>
Может кто-то пожалуйста, дайте мне знать, как я могу это исправить, и почему данные не получает тянут в первую дело.
Благодаря
«* к моему удивлению, это не работает». «Что значит« не работает »? Пожалуйста, напишите ** воспроизводимый пример **, включая пример XML-ввода. –
Это значение null, нет вывода – user3872094
Можете ли вы разместить свой xml, который загружается через функцию документа – Saurav