XMLデータを解析するための優れたJavaScriptライブラリを探しています。ブラウザに組み込まれたXML DOM parsersビルトインよりもはるかに使いやすいはずです。JavaScriptのXMLパーサー
私は少しJSONで作業していて、XMLのための類似の行を楽しみにしています。
XMLデータを解析するための優れたJavaScriptライブラリを探しています。ブラウザに組み込まれたXML DOM parsersビルトインよりもはるかに使いやすいはずです。JavaScriptのXMLパーサー
私は少しJSONで作業していて、XMLのための類似の行を楽しみにしています。
私はこれにjQueryを使用します。ここでは良い例です:
(EDIT:注意 - 次のブログがなくなっているようだ。)
http://blog.reindel.com/2007/09/24/jquery-and-xml-revisited/
jQueryドキュメントの良い例のとてもたくさんもあります
http://www.webmonkey.com/tutorial/Easy_XML_Consumption_using_jQuery?oldid=20032
EDIT:私の主な例題のブログのために、基本を示し、名前空間の問題に役立つもう1つの例を追加したいと思います。
リネエルリンクが拉致されました。 – DuckMaestro
ここにブログのミラーがあります:http://web.archive.org/web/20080110113712/http://blog.reindel.com/2007/09/24/jquery-and-xml-revisited/ – brasofilo
答えのPDF添付ファイルとしてブログの印刷物を含める?彼らはテキストをあまり明確にしないので、私は "編集"ノートを取り除くだろう。私は死んだリンクを削除し、ライブリンクでそれらを置き換えようとしました –
あなたがXML for SCRIPTを試してみました。私はそれを個人的に使用したことはないと認めなければなりませんが、それについていくつかの良いことを聞いたり読んだりしています。
ここにあなたの経験をお試しください。
XMLが単純な形式の場合は、jQueryとXML to JSON pluginまたはxmlObjectifierを参照してください。
ストレートパーサーの場合は、XML for <SCRIPT>を見てください。
免責事項:オープンソースJsonixライブラリがタスクに適している可能性がある場合、私は著者です。 JavaScriptのための> JSONパース/シリアライズライブラリ -
数年前、私はまた、良好なXML <を探していました。私はかなり複雑なXMLスキーマに準拠したXML文書を処理する必要がありました。
Is there a JavaScript API for XML binding - analog to JAXB for Java?
私は当時、このようなツールを見つけることができませんでした:私は似たような探していたので、Javaでは、私は日常のタスクにJAXBを使用しています。
私はJsonixを書きました。JavaScriptのJAXBアナログと考えています。
あなたは、適切なJsonix、あなたは以下の機能に興味があるなら見つけることがあります。
QName
のような特別なタイプを含む)をサポートします。amdefine
へ)RequireJS/AMDにも互換性のNode.js、しかし、Jsonix は、あなたのXMLはかなり単純であれば、XMLスキーマを持っていないか、厳密な型または構造に興味を持っていないのであればない、やり過ぎかもしれません。要件を確認してください。
例
それin JSFiddleを試してみてください。
あなたはpurchase order schemaを取って、次のコマンドを使用して、そのためのマッピングを生成することができます
java -jar node_modules/jsonix/lib/jsonix-schema-compiler-full.jar
-d mappings -p PO purchaseorder.xsd
あなたがXMLとJavaScript構造の間のマッピングを説明していPO.js
ファイルを取得します。ここではあなたの印象を与えるために、このマッピングファイルからの抜粋だ:
var PO = {
name: 'PO',
typeInfos: [{
localName: 'PurchaseOrderType',
propertyInfos: [{
name: 'shipTo',
typeInfo: 'PO.USAddress'
}, {
name: 'billTo',
typeInfo: 'PO.USAddress'
}, {
name: 'comment'
}, {
name: 'orderDate',
typeInfo: 'Calendar',
type: 'attribute'
}, ...]
}, {
localName: 'USAddress',
propertyInfos: [ ... ]
}, ...],
elementInfos: [{
elementName: 'purchaseOrder',
typeInfo: 'PO.PurchaseOrderType'
}, ... ]
};
あなたはXMLを解析することができます
// First we construct a Jsonix context - a factory for unmarshaller (parser)
// and marshaller (serializer)
var context = new Jsonix.Context([PO]);
// Then we create a unmarshaller
var unmarshaller = context.createUnmarshaller();
// Unmarshal an object from the XML retrieved from the URL
unmarshaller.unmarshalURL('po.xml',
// This callback function will be provided
// with the result of the unmarshalling
function (unmarshalled) {
// Alice Smith
console.log(unmarshalled.value.shipTo.name);
// Baby Monitor
console.log(unmarshalled.value.items.item[1].productName);
});
またはあなたのJavaScriptオブジェクトをXMLとしてシリアライズ:
// Create a marshaller
var marshaller = context.createMarshaller();
// Marshal a JavaScript Object as XML (DOM Document)
var doc = marshaller.marshalDocument({
name: {
localPart: "purchaseOrder"
},
value: {
orderDate: { year: 1999, month: 10, day: 20 },
shipTo: {
country: "US",
name: "Alice Smith",
street: "123 Maple Street",
city: "Mill Valley",
state: "CA",
zip: 90952
},
billTo: { /* ... */ },
comment: 'Hurry, my lawn is going wild!',
items: { /* ... */ }
}
});
in JSFiddleを試して実際の動作を確認できます。
追加免責事項:この答えがあるため、メタ上following discussionの高投票です。 「メタ効果」に注意してください。ここでの高い評価は、必ずしもJsonixがコミュニティによって良い、適用可能、または推奨されているとは限りません。高得票で誤解しないでください。
高性能のために[fast xml parser](https://github.com/NaturalIntelligence/fast-xml-parser)を作成しました。 –