如何使用XSLT在c#中像在JS中那样转换节点
本文关键字:转换 节点 JS 何使用 XSLT | 更新日期: 2023-09-27 18:06:39
这个参数化的XSLT将XLSX XML格式转换成一行一行的XML,看起来非常整洁,就像手工制作的一样:
输入:<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>
它是用JS写的,但这在c#中可能吗?
如果您有源 XML和XSLT 样式表:
string xmlFileName = "Book.xml";
string xslFileName = "Excel2NamedXML.xsl";
你可以这样写:
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