2011-10-17 20 views
1

私は既存のスレッドを見たことを誓います!しかし、私はまだ助けが必要です。XMLからCSVへの変換で、複雑になる

私は非常に混乱したXMLを取って、それをウェブサイトデータベースにアップロードするためのきれいなCSSファイルに変換する必要があります。

私は本当に完成した解決策は必要ありませんが、私はXSLTの私の問題を解決するために私が従うべきプロセスを理解する助けが必要です。私はあなたにすべてのコードを書いてくれるのではなく、必要な要素とテンプレート構造を教えてください。私はコミュニティがプロセスの背後にある論理を説明できるので、必要に応じてコミュニティを変更することもできます。

私はすべての注文のレコードと数字を持つXMLを持っている:

<record-list> 
    <record> 
     <title>Title One</title 
     <author>Author One</author> 
     <subject> 
       Subject One A 
       Subject One B 
       Subject One C 
     </subject> 
     <subject>Subject Two</subject> 
     <subject>Subject Three</subject> 
     <subject>Subject Four</subject> 
    </record> 
    <record> 
     <subject>Subject Five</subject> 
     <title>Title Two</title> 
     <useless-element>Extra Stuff One</useless-element> 
    </record> 
    <record> 
     <title>Title Three</title> 
     <subject>Subject Six</subject> 
     <author/> 
    </record> 
</record-list> 

だから私は繰り返し要素、いくつか欠けている要素、いくつかの空の要素は、注文のうちの要素、およびエクストラでいくつかの要素の複数の番号を持っています改行。

Iは以下のように読み込むCSVファイルを必要とする、または対象反復数が異なる最終出力用

"Title","Subject","Subject","Subject","Author" 
"Title One","Subject One A ; Subject One B ; Subject One C","Subject Two","Subject Three","Author One" 
"Title Two", "Subject Five","","","" 
"Title Three","Subject Six","","","" 

要件(以下の要件を参照)

-The列の数どんな繰り返し要素のレコードも、その要素の最も反復されたものと一致させる必要があるか、またはプログラムは特定の数を超えて繰り返しを切り落とす必要があります。 - 新しいレコードには改行が必要であり、ファイルには改行は存在しません(レコード区切り文字としてのみ)。 - 要素は、各レコードに対して同じ順序である必要があります。 - 各要素テキストには、(組み込みのコンマを処理するための)引用符が必要です。 - 欠落または空の要素は空白で囲む必要があります。カンマで囲んだ引用符。

を私はものの、翻訳機能を使用して要素内の余分な改行を取り除く方法を考え出した: -extra要素は、私がやっていること出力

にを介して送信することはできません改行文字を複数の文字で置き換えるソリューションが大好きです(今は、プレースホルダーの文字をスペースに変更するための検索と置換を実行しなければなりません - 出力のセミコロンスペース)。テキスト要素と空白文字を使って引用符、コンマ、改行を出力することができます。

しかし、要素の順序を整列させる方法、要素の繰り返しを処理する方法、または一部の要素だけを入れて要素を改行のキューとして使用する方法はわかりません。

現在、あらゆる種類の手動操作や複数のスタイルシートが必要な場合でも、機能するソリューションが必要です。出力が良い限り、テキストエディタで検索して置換することもできます。 XSLTソリューションで助けてください、私は他の適切なプログラミング言語(何年も前に大学のMATLABは助けていない)を知り始めることさえありません。

私は2つの変換を実行する必要があると思います。私はXSLTの聖書ManganoのXSLT Cookbookを見ました。そこでは、同様の問題に対して2つの変換を使用しました。しかし、彼の解はとても一般化されているので、私はそれを理解できません。私はそれがどのように動作するかを理解できない場合は、私のニーズに合わせて変更することはできません。申し訳ありませんが、プログラミングの背景がなくても、このサイトと本文の説明は最高です。しかし、私はこのフォーラムで尋ねられる他の人たちと比べて、いくつかの斬新な機能に問題を提示していると思います。

一般的ではないコードであれ、私のプロセッサーを複数回実行するための推奨される手順ですらあれば、すばらしいことでしょう。私はこれを1週間以上苦労しており、ほとんど進歩を遂げていません。

おかげ CAMC

+1

これはコード化されたQ&Aサイトであり、実際には自分の答えをコード化したいと思うかもしれませんが、 'xml to csv'のための簡単なgoogleは役立つかもしれないツールを投げます。 [XML Converter](http://www.xml-converter.com/?from=adwords) –

答えて