2011-01-24 5 views
2

私が取り組んでいるプロジェクトでは、XML文書をJSONに変換する必要がありますが、データをきれいに整理して人間が読めるようにしておく必要があります。 xml2json-xsltはJSONを作成することができますが、フォーマットはうまくいきません。
私の主な問題は、外部ライブラリ、JavaScriptなどを使わずにXSLT 1.0で行う必要があるということです。ちょうど純粋なXSLT。インターネットには多くのサンプルがありますが、適切な(よく読まれる)形式を保証するものは見つけられません。
ブーリアン、数値、日付などを変換することでロケット科学を行う必要はありません。別のアプリケーションで使用されるJSONを作成するだけですが、オペレータがデータを見て、インデントしてうまくいく必要があります位置合わせされたブラケット。XMLをフォーマット済みのJSONに変換する

+1

アレックス: "ロケットを使用する必要はありません。 science "*、はい、JSONはXMLをマップしません。そのため、この翻訳にはいくつかの規則があります。私はあなたがそれらの1つを選ぶべきだと思います。また、あなたが「素敵なフォーマット」を意味するかどうか、そしてこれが意味のある問題であることは明確ではありません。 –

+0

「ニースフォーマット」は、物事が適切な方法で整列されているため、人間が読むことができるという意味です。 XMLノードは深く進むことができ、JSONオブジェクトも深くなります。シンプルで適切なインデントは既に十分でなければなりません。 –

答えて

1

:私のJSONの相互作用がhttp://jsonformatter.curiousconcept.com/ ...

その他のオプションで始まり、多くのそれが欲しい。

空白の処理方法については、Converting XML to plain text - how should I ignore/handle whitespace in the XSLT?を参照してください。

私は、これは楽しいプロセスになるとは思わない:(

+0

それは結局私の結論だった。問題は、優先順位の低いタスクなので、より良い解決策を探していたことです。 –

2

最も簡単な解決策は、xml2json.xsltの出力をJSONフォーマッタでプッシュすることです。その中には利用可能な番号があるようです - 私はそれらの経験はありません。

+0

このようなJSONフォーマッタがXSLTとして存在する場合、またはXSLTから呼び出せれば問題は解決します。しかし、そのようなフォーマッタはまだ存在しません。 –

0

http://james.newtonking.com/pages/json-net.aspx

私はJSONへのLINQのために、このライブラリを使ってきたし、それがスーパークリーンかつ簡単でした。私はJSONを.NETオブジェクトに変換する方法についてのドキュメントを読んでいましたが、JSONのクラスがそこにあるXMLを見ているのを覚えています...

+0

スーパークリーン/簡単に私はJSON文字列からコードの1行でJSONにLINQを使用してキー値を得ることを意味します –

+0

私が探しているものではありません。私が調整できるのはXSLTファイルなので、純粋なXSLTソリューションが必要です。私は間違いなく.NETコードを使用することはできません。 –

1

私の経験上、XSLTは特に生成に悪いきれいにフォーマットされた出力。

オペレーターが使用するJSONビューアーで問題を解決できますか?私はあなたがそれはあなたのようにインデントまで弾丸をかむとxml2json-XSLTを微調整する必要があるとしていると思いますStandalone applicationFirefox AddOnetc

+0

いいえ、問題は、データを変換するためにXSLTファイルを使用する既存のアプリケーションがあることです。現在、データはXMLではなくJSONに変換されますが、アプリケーションのコードを調整することはできません。ちょうどXSLT。 –

1

他の誰かが(XSLT 1.0を使用して「単純な」XMLからインデントJSONを生成する)と同じ特別な要件を持って念のため、私は、インデントのバージョンを作成しました主旨としてxml2json-xsltの:それは取り扱い、適切な属性の取り扱いを欠い:XSLT 2.0または誰が「複雑な」XMLを持っていると罰金です皆のためにhttps://gist.github.com/3977454

xml2json-XSLTはいくつかの欠点を持っているので、私は別のXSLTをお勧めします同じ名前を持つ複数の要素のうちの1つ(例えば、現在のxml2json-xsltの改訂版は31です)。

「xml2json xslt」を検索するときにgithubでXSLTの代替語句を見つけることができます(例: https://github.com/bramstein/xsltjson)。欠点は、ほとんどがインデントをサポートしていないことですが、これはJSONフォーマッタを使用して出力をパイプすることで補うことができます(https://stackoverflow.com/a/5244011/490560などを参照)

関連する問題