アポイントメントに関する情報を含むXML構造を取得します。
私のコード:
function AppointmentCallback(appointment : any) {
}
これをJavaScriptまたはTypeScript(推奨)のオブジェクトに変換したいと思います。 jQueryには、私が必要としているものとは逆のparseXML
メソッドしかありません。
これを可能にするライブラリはありますか?
前もって感謝します!
cxml XMLをJSONに解析し、解析中にハンドラーを起動して、ファイルの読み込み時に処理することもできます。 cxsd を使用して、.xsd
スキーマファイルをTypeScript.d.ts
定義ファイルにコンパイルできます。解析された出力も完全に型指定されるため、IDE like Atomまたはtsc
コンパイラは解析されたものを正しく処理していることを確認できますJSON(要素と属性の名前およびデータ型など)
使用方法は次のようになります(その他の例 Github内 ):
import * as cxml from 'cxml';
import * as example from 'cxml/test/xmlns/dir-example';
var parser = new cxml.Parser();
var result = parser.parse('<dir name="empty"></dir>', example.document);
result.then((doc: example.document) => {
console.log(JSON.stringify(doc, null, 2));
});
MDNには、JavaScriptでのXMLのシリアル化と逆シリアル化に関する優れた article があり、jQueryなどのライブラリに頼ることなくすべてのオプションをカバーしています。
古いバージョンのIE(pre-11)-および現在のバージョンのOpera Mini-にはいくつかの制限があり、それらをサポートする必要がある場合に問題が発生する可能性があります。特にDOMParser.parseFromString
がありません: これを確認してください 。
DOMを操作するのではなく、本当にJavaScriptオブジェクトに変換したい場合は、おそらくJXONを確認する必要があります。 これが方法です 。
いつでもオブジェクトからXMLドキュメントを再作成する場合は、それをDOMに変換し、DOMノードを直接操作することをお勧めします。そうすれば、再シリアル化するときに、ノードの順序が保持されます。昔ながらのJavaScriptオブジェクトのルートをたどると、順序が失われます。
Cxsdライブラリをチェックしてください https://www.npmjs.com/package/cxsd xsdをTypeScriptに解析します。いくつかの奇妙な依存関係があります。 npm install --global --production windows-build-tools
を実行する必要がありました。また、cxsd.cmdがパスに含まれていることを確認します。これはcliです。cxsd file.xsd
生成されたTypeScriptで.d.tsファイルを出力します。
JSONconvertからserializeXmlNodeを使用することもできます
次のように:Jsonconvert(doc)