#arrays #xml #xslt
#массивы #xml #xslt
Вопрос:
пожалуйста, помогите,
У меня есть эти значения:
<xsl:variable name="PB" select="'/join/id/stop/regelingtype_007'"/>
<xsl:variable name="I" select="'/join/id/stop/regelingtype_008'"/>
<xsl:variable name="VR" select="'/join/id/stop/regelingtype_009'"/>
<xsl:variable name="P" select="'/join/id/stop/regelingtype_010'"/>
У меня есть этот массив
<xsl:variable name="OP-implementatie" select="[
$PB,
$I,
$VR,
$P
]"/>
Теперь я хочу проанализировать этот xslt с помощью другого xslt
Я получаю ссылку на массив следующим образом
<xsl:variable name="vars" select="document('xxx')s/*/xsl:variable" />
Я нахожу массив следующим образом
<xsl:variable name="array" select="$vars[@name = 'OP-implementatie']/@select"/>
Пока здесь все работает нормально, я могу ссылаться на правильный массив, но теперь я хочу использовать значения:
<xsl:element name="var"><xsl:value-of select="$array"/></xsl:element>
Он просто печатает массив следующим образом
<var>[ $PB, $I, $VR, $P ]</var>
И когда я делаю это:
<xsl:element name="var"><xsl:value-of select="$array[1]"/></xsl:element>
Он делает то же самое.
Я надеялся получить значения массива одно за другим, как я могу это сделать?
Большое спасибо за любую помощь
С наилучшими пожеланиями, Берт Верхис
Комментарии:
1. Какой результат вы пытаетесь получить? И какую версию XSLT вы можете использовать?
Ответ №1:
Я бы предложил импортировать документ с помощью, например <xsl:import href="sheet1.xsl"/>
, , затем вы можете выбрать $OP-implementatie
как полный массив и использовать, например $OP-implementatie?1
, или $OP-implementatie(1)
для получения первого элемента в массиве. Непонятно, почему вам нужно использовать другой XSLT как обычный XML, анализируемый с doc
помощью или document
.
Комментарии:
1. Это многообещающее решение, спасибо. Недостатком является то, что импорт является проблемой из-за конфликтующего корневого элемента. Или можно импортировать узлы из другого документа? Зачем мне это нужно — долгая история, это связано с анализом документов xslt.
2. @BertVerhees, любой импортируемый обычно должен иметь более низкий приоритет, чем ваш импортирующий код, поэтому конфликты не должны возникать.
3. Я попробую завтра и дам вам знать. Еще раз спасибо
4. Извините, это не работает, внутренние ссылки импортированной таблицы стилей начинают возражать, потому что в ситуации импорта их XPath изменился.
5. Для других, кто ищет ответ на аналогичную проблему, я решил так: <xsl:имя переменной =»AMvB_MR_BRG» выберите=»/regelingtype_001 / regelingtype_002″/> Строки без кавычек для каждого элемента и косой черты пересылки, и это сработало.