C# XslCompiledTransform - 以 POCO 形式而不是 Html 输出
Posted
技术标签:
【中文标题】C# XslCompiledTransform - 以 POCO 形式而不是 Html 输出【英文标题】:C# XslCompiledTransform - output in form of POCO instead of Html 【发布时间】:2020-10-20 20:41:51 【问题描述】:我正在尝试读取 xml 文件并将其内容插入数据库。 我遇到了 XSLT 转换,它真的又快又好。以下代码可以正常工作,并且在 result.html 中可以看到数据
var settings = new XsltSettings(true, true);
var xslt = new XslCompiledTransform();
xslt.Load("filename.xsl", settings, new XmlUrlResolver());
xslt.Transform("xmlfileName.xml", "result.html");
但是我想从 XML 中获取数据并将其插入到数据库中。
是否可以通过 XSLT 转换?就像不是输出为 HTML 一样,有没有办法以任何其他格式获取此数据,以便我可以将其拾取并将其插入数据库。
我知道这可以通过 xml 反序列化来完成,但是我想知道这是否也可以通过 XSLT 来完成。它会非常快速和酷!
【问题讨论】:
【参考方案1】:XSLT 1 的主要输出格式是 XML,因此您当然可以创建 XML 输出(使用您想要的数据)而不是 HTML。如何将 XML 插入数据库是另一个主题。
XSLT 1 还可以创建纯文本输出,因此对于某些受限用途,如果您有一个需要 CSV 或类似格式的现有 API,您当然也可以让 XSLT 创建该文本格式。
使用 .NET 版本的 Saxon 9.9 或 9.8 支持的 XSLT 3 也可以将 JSON 创建为 XdmMap 或 XdmArray,然后将其转换为 .NET 字典,例如,参见例如http://saxonica.com/html/documentation9.9/dotnetdoc/Saxon/Api/XdmMap.html 和 http://saxonica.com/html/documentation9.9/dotnetdoc/Saxon/Api/XdmMap.html#AsDictionary()
【讨论】:
以上是关于C# XslCompiledTransform - 以 POCO 形式而不是 Html 输出的主要内容,如果未能解决你的问题,请参考以下文章
XslCompiledTransform 类的加载方法抛出 *** 异常
在 transformig 时更改 xslCompiledTransform 输出编码
如何将VS2003的XslTransform转换为VS2005的XslCompiledTransform?
xslcompiledtransform 输出函数名和命名空间
当输入 XML 和转换 XSL 是字符串时,如何使用 XslCompiledTransform。如何将转换结果作为字符串获取?