0
嗨我是新来的XSLT我想转换Xml数据集,其中学生名称映射从一个XML,其中有学生名称和卷号的数据集。 classwise。XML数据集转换
我想要使用xslt,但我不想添加所有标记只是要映射的列名称标记,并将其他列按原样添加。
这里是输入输出数据集示例。 xml是来自c#代码的正常dataset.writexml。
表1:
RollNo Sub1 Sub2 Sub3 Sub4
1 65 89 67 34
2 67 86 67 76
3 86 67 78 45
4 56 56 87 56
5 76 56 56 78
表2
Name Sub1 Sub2 Sub3 Sub4
Aman 65 89 67 34
Ankit 67 86 67 76
Om 86 67 78 45
Narendra 56 56 87 56
Faisal 76 56 56 78
这是要用于转化的的Xml
映射XML
<?xml version="1.0" standalone="yes"?>
<School>
<Class Name="Class1">
<StudentData Name="Aman" RollNo="1" />
<StudentData Name="Ankit" RollNo="2" />
<StudentData Name="Om" RollNo="3" />
<StudentData Name="Narendra" RollNo="4" />
<StudentData Name="Faisal" RollNo="5" />
</Class>
<Class Name="Class2">
<StudentData Name="Abhinav" RollNo="1" />
<StudentData Name="Abhishek" RollNo="2" />
<StudentData Name="Ishaan" RollNo="3" />
<StudentData Name="Mayank" RollNo="4" />
<StudentData Name="Bhavana" RollNo="5" />
</Class>
</School>
XSLT创建至今
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="http://www.contoso.com">
<xsl:output method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<DocumentElement>
<xsl:for-each select="//Comparision">
<xsl:if test ="number(COL7)">
<PositionMaster>
<xsl:variable name="RollNo" select="normalize-space(COL1)"/>
<xsl:variable name="Name">
<xsl:value-of select="document('../../../MappingFiles/Mapping.xml')/School/PB[@Name='Class1']/TagData[@RollNo=$RollNo]/@Name"/>
</xsl:variable>
<Name>
<xsl:choose>
<xsl:when test="$Name!=''">
<xsl:value-of select="$Name"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$Name"/>
</xsl:otherwise>
</xsl:choose>
</Name>
</PositionMaster>
</xsl:if >
</xsl:for-each>
</DocumentElement>
</xsl:template>
</xsl:stylesheet>
感谢 阿曼
显示到目前为止你已经尝试过的东西。 – dario
** 1。**请将您的输入和输出张贴为XML代码。 - ** 2。**转换如何知道映射XML中的哪个'Class'用于查找? –
@ michael.hor257k xslt将在其中硬编码类名称。 – XYZ