我們在unix上有多個xml文件。我們需要將它們轉換爲平面文件。我們使用C語言解析了一層xml文件(C被用作C可以與Teradata fastload進行通信,這是我們使用inmod的目標框,並且它會在其他語言中完成其他語言的其他語言分析,我們需要執行兩次解析一個用於轉換成平面文件,另一個用於加載ito teradata)。即下面的文件Unix XML文件轉換爲平面文件
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
</book>
轉換成
bk101~Gambardella, Matthew~XML Developer's Guide~Computer~44.95~
此,我們通過解析C中的文件,但看到XML文件的原始格式,低於後實現的。 (請不要將它視爲必需的文件,我只是在提供一個想法)
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<modified>2010-01-02</modified>
<modified>2010-01-03</modified>
<price>44.95</price>
</book>
這應該轉換爲兩個記錄似乎。
bk101~Gambardella, Matthew~XML Developer's Guide~Computer~2010-01-02~44.95~
bk101~Gambardella, Matthew~XML Developer's Guide~Computer~2010-01-03~44.95~
但是現在我們覺得我們的C代碼對於這個需求來說會很複雜。所以我們正在研究可以在unix上輕鬆使用的其他選項。任何人都可以給我們unix的不同語言/選項的任何工作示例代碼?
非常感謝。你提供了一個很好的工作例子。非常感謝。您的示例增加了我對學習XSLT的興趣。我使用xalan(c版本)來運行ur示例代碼,並且完美地工作。 Stackoverflow極客很棒。感謝所有人的幫助和建議。我會嘗試大部分可用選項,讓你知道最終產品。 – 2010-12-18 06:32:34
非常感謝你。我能夠爲更復雜的xml文件創建簡單的xslt腳本,我使用多個循環。保持搖擺。因爲你現在我能夠想出使我的600行C代碼複雜化並開始學習新語言的想法。在我的組織使用xalan後,現在我必須在unix上嘗試相同的腳本和執行。 – 2010-12-18 07:41:35
你非常歡迎。我很高興它有幫助。不過你應該看看撒克遜人。 HE版本仍然是免費的,並且支持XSLT 2.0。 http://saxon.sourceforge.net/ Xalan不支持2.0 – 2010-12-19 21:40:27