Ввод XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<output>
<calls>
<call>
<parameters>
<parameter name="id">CTL-000002</parameter>
</parameters>
<Results>
<ex id="1">
<column name="CFGCapacity">9500.0000000</column>
<column name="CFGCode">CTL-3819</column>
<column name="CPCode">CTL-3819-01</column>
<column name="CPCapacity">2700</column>
<column name="unit">gallon</column>
</ex>
<ex id="2">
<column name="CFGCapacity">52120.0000000</column>
<column name="CFGCode">CTL-3819</column>
<column name="CPCode">CTL-3819-01</column>
<column name="CPCapacity">22950</column>
<column name="unit">pound</column>
</ex>
<ex id="3">
<column name="CFGCapacity">9500.0000000</column>
<column name="CFGCode">CTL-3819</column>
<column name="CPCode">CTL-3819-02</column>
<column name="CPCapacity">1700</column>
<column name="unit">gallon</column>
</ex>
</Results>
</call>
</calls>
</output>
<plant>
<id>CTL-000002</id>
<plant_tag>0</plant_tag>
</plant>
</root>
XSL:
<xsl:template match="@* | node()">
<root>
<xsl:for-each select="//plant">
<xsl:choose>
<xsl:when test="plant_tag='0'">
<cfgs>
<cfg>
<id>
<xsl:value-of select="//root/output/calls/call/parameters[parameter[@name='id'] = ./id]/../../Results/ex/column[@name='CFGCode']"/>
</id>
</cfg>
</cfgs>
<xsl:copy-of select="."/>
</xsl:when>
<xsl:otherwise>
<!--smthing else-->
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet>
Я не уверен, что делаю неправильно.
В основном, я хочу вставить в тег cfg / idзначение из столбца с именем 'CFGCode'.Хитрость в том, что у меня могут быть разные «вызовы» с разными параметрами, поэтому я хочу убедиться, что я заполнил тэг ID правильным значением, поэтому я пытаюсь сопоставить завод / ID с параметром [name = 'id'] из звонка.Если эти значения совпадают, выберите значение из CFGCode.
Конечная цель заключается в том, чтобы у меня было несколько тегов 'растений' с различной информацией, и мне нужно сопоставить идентификатор завода с идентификатором из 'call ', чтобы выбрать некоторую информацию из результатов моего вызова (это некоторые результаты запроса).
Спасибо!
Редактировать:
Ожидаемый результат:
<root>
<plant>
<cfgs>
<cfg>
<id>CTL-3819</id>
</cfg>
</cfgs>
<id>CTL-000002</id>
<plant_tag>0</plant_tag>
</plant>
</root>