JavaScriptを使用してXMLを解析できる必要があります。 XMLは変数になります。私はjQueryや他のフレームワークを使用したくないと思う。JavaScriptを使用してXMLを解析する
私はこれを見て、XML > jQuery readingです。
JavaScriptを使用してXMLを解析できる必要があります。 XMLは変数になります。私はjQueryや他のフレームワークを使用したくないと思う。JavaScriptを使用してXMLを解析する
私はこれを見て、XML > jQuery readingです。
last questionから、GeoNamesのFindNearestAddressを使用して見つかったXMLを解析(読み取りおよび変換)しようとしている20分前に尋ねられます。あなたのXMLがtxt
と呼ばれる文字列変数であり、このように見える場合
は:
<address>
<street>Roble Ave</street>
<mtfcc>S1400</mtfcc>
<streetNumber>649</streetNumber>
<lat>37.45127</lat>
<lng>-122.18032</lng>
<distance>0.04</distance>
<postalcode>94025</postalcode>
<placename>Menlo Park</placename>
<adminCode2>081</adminCode2>
<adminName2>San Mateo</adminName2>
<adminCode1>CA</adminCode1>
<adminName1>California</adminName1>
<countryCode>US</countryCode>
</address>
次に、あなたは、このようにJavascriptをDOMでXMLを解析することができます
if (window.DOMParser)
{
parser = new DOMParser();
xmlDoc = parser.parseFromString(txt, "text/xml");
}
else // Internet Explorer
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(txt);
}
から特定の値を取得します
//Gets house address number
xmlDoc.getElementsByTagName("streetNumber")[0].childNodes[0].nodeValue;
//Gets Street name
xmlDoc.getElementsByTagName("street")[0].childNodes[0].nodeValue;
//Gets Postal Code
xmlDoc.getElementsByTagName("postalcode")[0].childNodes[0].nodeValue;
jqueryを使用すると、 'xmlDoc.getElementsByTagName(" streetNumber)の代わりに '$(xmlDoc).find( 'street:eq(0):eq(0) ")[0] .childNodes [0] .nodeValue; ' –
非常に役に立ちましたEnigmadanありがとう! – Andrew
OPの他の質問の回答を検索して統合することは、私が高レベルのSOゲームと呼ぶものです。私は感動している、よくやった! – maryisdead
以下は、Internet Explorer 6を含むすべての主要なブラウザでXML文字列をXMLドキュメントに解析します。これを取得したら、childNodesやgetElementsByTagName()などの通常のDOMトラバーサルメソッド/プロパティを使用してあなたが望むノード。
var parseXml;
if (typeof window.DOMParser != "undefined") {
parseXml = function(xmlStr) {
return (new window.DOMParser()).parseFromString(xmlStr, "text/xml");
};
} else if (typeof window.ActiveXObject != "undefined" &&
new window.ActiveXObject("Microsoft.XMLDOM")) {
parseXml = function(xmlStr) {
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlStr);
return xmlDoc;
};
} else {
throw new Error("No XML parser found");
}
使用例:私はhttps://stackoverflow.com/a/8412989/1232175からもらった
var xml = parseXml("<foo>Stuff</foo>");
alert(xml.documentElement.nodeName);
。
私はPhoneGapを使用してアプリをパッケージ化することがありますが、それが機能するかどうかわかりません。 – user2574350