2008-09-15 29 views
3

我們正在尋找可以讀取任何輸入(EDIfact文件,CSV,XML等)的Transformation庫或引擎,因此包含必須轉換爲已知業務對象結構的數據的文件(或webservices結果)。 )應使用自定義規則將此數據轉換爲現有業務對象。 XSLT既要複雜(學習)又要簡單(沒有足夠的功能)是否有使用.NET的轉換引擎或庫?

任何人都可以推薦一個C#庫或引擎嗎?我曾見過Altova MapForce,但希望能發送給幾十個人,他們將不必支付數十個Altova許可證就可以構建/設計自己的轉換。

回答

3

建議FileHelpers如果你認爲XSLT是太爲難你了,我想你可以嘗試的LINQ to XML解析XML文件。它集成在.NET框架中,您可以使用C#(或者,如果您使用VB.NET 9.0,由於XML文字而更好),而不是學習其他語言。您可以毫不費力地將其與現有應用程序集成,並且不會出現語言與XSLT發生的文件管理之間的範式不匹配。

Microsoft LINQ to XML

當然,這不是解析文件的框架或庫,但也不XSLT是,所以...

1

我不會那麼快地將XSLT視爲過於複雜或不包含您所需的功能。

有很多書籍/網站介紹了您需要了解的關於XSLT的一切。是的,有一點學習曲線,但它並沒有太多的瞭解它,並且如果你需要幫助,總是有一個像stackoverflow那樣好的社區;-)

至於缺乏你的功能總是可以擴展xslt並使用XsltArgumentList.AddExtensionObject()方法從xslt調用.NET程序集,這會爲您提供所需的功能。

MSDN有使用的一個很好的例子,這here

這是真實的,MapForce的和BizTalk應用程序使創建XSLT很容易的,但他們的成本也有點。另外,根據您的用戶羣(假設非開發人員),我認爲您會發現這些應用程序有自己的學習曲線,並且通常功能豐富,滿足您的需求。

我建議你考慮構建和發佈你自己的用戶需求特定的自定義映射工具。

此外,如果你需要一個庫,以協助文件轉換我在SourceForge

2

XSLT是不會對EDI和CSV工作。如果你想要一個完全通用的轉換引擎,你可能不得不掏出一些現金。我已經使用Symphonia來處理EDI,並且它可以工作,但它不是免費的。

問題在於你所描述的問題聽起來很「企業化」(我確信沒有人使用EDI來獲得樂趣),所以沒有開源/免費工具來處理這個問題。

+0

嘿,有趣這些事情是如何解決的。我是Symphonia和相關工具的開發人員之一。 如果有人有興趣,請隨時與我聯繫。 – 2009-05-19 21:33:07

1

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。

相關問題