【问题标题】:Is there a Transformation engine or library using .NET?是否有使用 .NET 的转换引擎或库?
【发布时间】:2008-09-15 10:05:11
【问题描述】:

我们正在寻找可以读取任何输入(EDIfact 文件、CSV、XML 等类似内容的转换库或引擎。因此,包含必须转换为已知业务对象结构的数据的文件(或 Web 服务结果)) .) 应使用自定义规则将此数据转换为现有业务对象。 XSLT 既复杂(学习)又简单(功能不足)

谁能推荐一个 C# 库或引擎?我已经看过 Altova MapForce,但我希望我可以向数十人发送一些东西,他们将构建/设计自己的转换,而无需支付数十个 Altova 许可证。

【问题讨论】:

    标签: c# transformation altova


    【解决方案1】:

    如果您认为 XSLT 对您来说太难了,我认为您可以尝试使用 LINQ to XML 来解析 XML 文件。它集成在 .NET 框架中,您可以使用 C#(或者,如果您使用 VB.NET 9.0,则更好,因为 XML 文字)而不是学习另一种语言。您可以毫不费力地将其与现有应用程序集成,并且不会出现 XSLT 出现的语言和文件管理之间的范式不匹配问题。

    Microsoft LINQ to XML

    当然,它不是用于解析文件的框架或库,但 XSLT 都不是,所以...

    【讨论】:

      【解决方案2】:

      XSLT 不适用于 EDI 和 CSV。如果您想要一个完全通用的转换引擎,您可能需要花一些钱。我使用Symphonia 处理EDI,它有效,但它不是免费的。

      问题是你描述的问题听起来“企业”(我相信没有人会为了好玩而使用 EDI),所以没有开源/免费工具可以处理这些东西。

      【讨论】:

      • 嘿,这些事情的结果真有趣。我是 Symphonia 和相关工具的开发人员之一。如果有人有兴趣,请随时与我联系。
      【解决方案3】:

      我不会这么快就将 XSLT 斥为过于复杂或不包含您需要的功能。

      有很多书籍/网站描述了您需要了解的有关 XSLT 的所有信息。是的,有一点学习曲线,但并不需要太多时间,而且如果你需要帮助,总有一个很棒的社区,比如 stackoverflow 可以求助 ;-)

      至于缺少功能,您始终可以扩展 xslt 并使用 xslt 从 xslt 调用 .NET 程序集 XsltArgumentList.AddExtensionObject() 方法,它将为您提供所需的功能。

      MSDN 有一个很好的例子来使用这个here

      确实,MapForce 和 Biztalk 应用程序使创建 xslt 变得非常容易,但它们也需要一些成本。此外,根据您的用户群(假设非开发人员),我认为您会发现这些应用程序有自己的学习曲线,而且功能通常过于丰富,无法满足您的需求。

      我建议您考虑针对您的用户需求构建和分发您自己的自定义映射工具。

      此外,如果您需要一个库来帮助进行文件转换,我建议您在 SourceForge 使用 FileHelpers

      【讨论】:

        【解决方案4】:

        DataDirect Technologies 有一款产品可以做到这一点。 在http://www.xmlconverters.com/ 有一个名为 XmlConverters 的库,可以将 EDI 转换为 XML,反之亦然。还有 CSV、JSON 和其他格式的转换器。 这些库以 100% .net 托管代码和 100% Java 并行端口的形式提供。 .net 端支持 XmlReader 和 XmlWriter,而 Java 端支持 SAX、StAX 和 DOM。两者都支持流和读取器/写入器 I/O。 DataDirect 也有一个 XQuery 引擎,优化用于将关系数据与 EDI 和 XML 合并,但它只是 Java。

        【讨论】:

          【解决方案5】:

          Microsoft BizTalk Server 在这方面做得很好。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-04
            • 1970-01-01
            • 2011-05-23
            相关资源
            最近更新 更多