C# 如何使用XSLT在C中转换节点,就像在JS中一样?
将XLSX XML格式转换为一行一行的XML,看起来非常整洁,似乎是手工制作的: 输入:C# 如何使用XSLT在C中转换节点,就像在JS中一样?,c#,xml,excel,xslt,C#,Xml,Excel,Xslt,将XLSX XML格式转换为一行一行的XML,看起来非常整洁,似乎是手工制作的: 输入: <Row> <Cell> <Data ss:Type="String">123-44-5678</Data> </Cell> <Cell> <Data ss:Type="String">John</Data> </Cell> <Cell> <D
<Row>
<Cell>
<Data ss:Type="String">123-44-5678</Data>
</Cell>
<Cell>
<Data ss:Type="String">John</Data>
</Cell>
<Cell>
<Data ss:Type="String">Doe</Data>
</Cell>
...
</Row>
<row number="1">
<SSN>123-44-5678</SSN>
<First_Name>John</First_Name>
<Last_Name>Doe</Last_Name>
...
</row>
123-44-5678
约翰
雌鹿
...
输出:
<Row>
<Cell>
<Data ss:Type="String">123-44-5678</Data>
</Cell>
<Cell>
<Data ss:Type="String">John</Data>
</Cell>
<Cell>
<Data ss:Type="String">Doe</Data>
</Cell>
...
</Row>
<row number="1">
<SSN>123-44-5678</SSN>
<First_Name>John</First_Name>
<Last_Name>Doe</Last_Name>
...
</row>
123-44-5678
约翰
雌鹿
...
它是用JS编写的,但是如果您有源XML和XSLT样式表,是否可以用C#?:
您可以使用以下内容:
XslCompiledTransform transform = new XslCompiledTransform ();
// Optional parameter list - from the article you linked
XsltArgumentList parameters = new XsltArgumentList ();
parameters.AddParam ("nSkipRows", "", "1");
parameters.AddParam ("nWorksheet", "", "1"); // and so one (these will copy values to top-level correspondent `<xsl:param>` elements in the stylesheet, if they exist)
transform.Load (xslFileName);
StringWriter s = new StringWriter ();
transform.Transform (xmlFileName, parameters, s); // this line does the transformation
Console.WriteLine ("Result: " + s.ToString ()); // here just printing out the result
xslcomiledtransform transform=new xslcomiledtransform();
//可选参数列表-来自您链接的文章
XsltArgumentList参数=新的XsltArgumentList();
parameters.AddParam(“nSkipRows”,“1”);
parameters.AddParam(“nWorksheet”、“1”);//还有一个(它们将把值复制到样式表中顶级对应的``元素,如果它们存在的话)
Load(xsl文件名);
StringWriter s=新的StringWriter();
transform.transform(xmlFileName,参数,s);//这一行进行转换
Console.WriteLine(“结果:+s.ToString());//这里只是打印结果
好吧,如果它只是直接的XSL处理,我看不出为什么不能。