我發現在應用具有xml輸出的模式時如何佈局XSL非常困難。XSLT初學者問題
目前,我有C#代碼運行:
static void Main(string[] args)
{
XslCompiledTransform myXslTransform;
myXslTransform = new XslCompiledTransform();
myXslTransform.Load("testxls.xsl");
myXslTransform.Transform("1BFC.xml", "testoutput.xml");
//Console.ReadLine();
}
而且我XLS看起來像
<?xml version="1.0" encoding="windows-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes" method="xml" />
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="FileImport">
<FileImport>
<xsl:apply-templates />
</FileImport>
</xsl:template>
<xsl:template match="Global">
<Global>
<xsl:apply-templates />
</Global>
</xsl:template>
<xsl:template match="GlobalParam">
<GlobalParam>
<xsl:attribute name="name">
<xsl:value-of select="@name" />
</xsl:attribute>
<xsl:value-of select="."/>
</GlobalParam>
<GlobalParam>
<xsl:attribute name="value">
<xsl:value-of select="@value" />
</xsl:attribute>
<xsl:value-of select="."/>
</GlobalParam>
</xsl:template>
哪些工作,但不產生輸出,我想:輸出的樣子:
<FileImport>
<Global>
<GlobalParam name="RollName"></GlobalParam><GlobalParam value="SA2 10:00:00:00"></GlobalParam>
<GlobalParam name="TapeOrg"></GlobalParam><GlobalParam value="10:00:00:00"> </GlobalParam>
<GlobalParam name="ReadStart"></GlobalParam><GlobalParam value="00:00:00:00"> </GlobalParam>
<GlobalParam name="ReadDuration"></GlobalParam><GlobalParam value="00:02:26:18"></GlobalParam>
我想是所有包含在全球標籤內,所以我想它看起來像:
<Global>
<GlobalParam name="RollName" value="SA2" />
<GlobalParam name="TapeOrg" value="10:00:00:00" />
<GlobalParam name="ReadStart" value="00:00:00:00" />
<GlobalParam name="ReadDuration" value="00:00:21:07" />
</Global>
似乎無法找到講解XML 2 XML XSL的任何信息。我不能把它包含它的權利..感謝您的任何幫助或指針。
你能編輯的問題,並添加一個示例XML源文件好嗎?也許你在源代碼中使用的'1BFC.xml'? – andyb
如果你想要一個'GlobalParam'實例下的屬性,你爲什麼要在你的變換中創建兩個單獨的元素實例? –