Ich habe zwei XML-Files.
File1 enthält eine GUID, File2 enthält die GUID sowie einen zugehörigen Namen.
Nun möchte ich File1 per XSLT transformieren, um den Namen der GUID auszugeben.
Beispiel:
File1:
<Job>
<TemplateGuid>7fb66320-b8ab-4642-a6c1-6042712e2676</TemplateGuid>
</Job>
…
File2:
<Globals>
<GlobalInfo>
<GlobalName>name1</GlobalName>
<GlobalType>T1</GlobalType>
<GlobalNetworkID>4a2e8353-ec77-4777-9c83-f6a72595cc40</GlobalNetworkID>
</GlobalInfo>
<GlobalInfo>
<GlobalName>name2</GlobalName>
<GlobalType>T2</GlobalType>
<GlobalNetworkID>9688e346-0f30-4b72-9e81-18e5babbbeb8</GlobalNetworkID>
</GlobalInfo>
<GlobalInfo>
<GlobalName>name3</GlobalName>
<GlobalType>T1</GlobalType>
<GlobalNetworkID>b44341ca-bb93-42e0-a2d7-aa8c4ad9087d</GlobalNetworkID>
</GlobalInfo>
</Globals>
Mein Ansatz sieht bisher so aus:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xslutput method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:variable name="paramDoc" select="document('c:\Connector\ProfilesList.xml')"/>
<xsl:variable name="templGuid" select="/Job/TemplateGuid"/>
<xsl:template match="/">
<xsl:for-each select="$paramDoc/Globals/GlobalInfo">
<xsl:if test="GlobalNetworkID = $templGuid">
<xsl:value-of select ="GlobalName"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Allerdings funktioniert der if-Test anscheinend nicht.
Was mach ich falsch?
Danke für die Hilfe,
Sebastian
File1 enthält eine GUID, File2 enthält die GUID sowie einen zugehörigen Namen.
Nun möchte ich File1 per XSLT transformieren, um den Namen der GUID auszugeben.
Beispiel:
File1:
<Job>
<TemplateGuid>7fb66320-b8ab-4642-a6c1-6042712e2676</TemplateGuid>
</Job>
…
File2:
<Globals>
<GlobalInfo>
<GlobalName>name1</GlobalName>
<GlobalType>T1</GlobalType>
<GlobalNetworkID>4a2e8353-ec77-4777-9c83-f6a72595cc40</GlobalNetworkID>
</GlobalInfo>
<GlobalInfo>
<GlobalName>name2</GlobalName>
<GlobalType>T2</GlobalType>
<GlobalNetworkID>9688e346-0f30-4b72-9e81-18e5babbbeb8</GlobalNetworkID>
</GlobalInfo>
<GlobalInfo>
<GlobalName>name3</GlobalName>
<GlobalType>T1</GlobalType>
<GlobalNetworkID>b44341ca-bb93-42e0-a2d7-aa8c4ad9087d</GlobalNetworkID>
</GlobalInfo>
</Globals>
Mein Ansatz sieht bisher so aus:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xslutput method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:variable name="paramDoc" select="document('c:\Connector\ProfilesList.xml')"/>
<xsl:variable name="templGuid" select="/Job/TemplateGuid"/>
<xsl:template match="/">
<xsl:for-each select="$paramDoc/Globals/GlobalInfo">
<xsl:if test="GlobalNetworkID = $templGuid">
<xsl:value-of select ="GlobalName"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Allerdings funktioniert der if-Test anscheinend nicht.
Was mach ich falsch?
Danke für die Hilfe,
Sebastian
Comment