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

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

有帮助吗?

解决方案

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

微软 LINQ 到 XML

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

其他提示

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

问题是你所描述的问题听起来很“企业”(我确信没有人使用 EDI 来娱乐),所以没有开源/免费工具来处理这些东西。

我不会这么快就认为 XSLT 太复杂或不包含您需要的功能而忽略它。

有很多书籍/网站描述了您需要了解的有关 XSLT 的所有信息。是的,有一点学习曲线,但不需要花太多时间就能进入,如果您需要帮助,总有一个像 stackoverflow 这样的优秀社区可以求助;-)

至于缺乏功能,您始终可以使用XSLTARGUMENTLIST.ADDEXTENDENSINDOBJECT()方法从XSLT扩展XSLT并调用.NET组件,这将为您提供所需的功能。

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

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

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

另外,如果您需要一个库来协助文件转换,我建议您使用 文件助手 在 SourceForge

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 还有一个针对将关系数据与 EDI 和 XML 合并而优化的 XQuery 引擎,但它只是 Java。

微软BizTalk服务器 这方面做得很好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top