2012-05-20 9 views
5

これまでに何百万回もの質問がありましたが、私が見つけたすべてのスクリプトは、質問をしている人のためにテイラーされているか、まったく動作しません。基本的には、JQueryのようなライブラリの代わりに通常のJavaScriptを使用することに限定されていますが、JQueryが必ずしもオプションであるとは限らないため、将来の使用のために保存したいと考えています。XMLファイルをJavaScript配列にロードする

とにかく追いかけています。

<?xml version="1.0" encoding="iso-8859-1"?> 
<profiles> 
<profile id="1"> 
    <pic>images/profiles/person1/x.jpg</pic> 
    <name>Joe Bloggs</name> 
    <nickname>J-Bloggs</nickname> 
    <age>21</age> 
    <email>[email protected]</email> 
    <role>Web Site Manager</role> 
    <likes> 
      <like1>Food</like1> 
      <like2>Drink</like2> 
      <like3>Computing</like3> 
      <like4>Music</like4> 
    </likes> 
    <dislikes> 
      <dislike1>Rude People</dislike1> 
      <dislike2>Rude People</dislike2> 
    </dislikes> 
    <favwebsite>http://www.facebook.com</favwebsite> 
</profile> 
</profiles> 

だから基本的に私は別々の新しい配列にそれがアクセスする必要があるたびに、それぞれのプロファイルをロードしたいが、加えている:私はかなり単純な構造を含む「profiles.xml」と呼ばれるXMLファイルを持っていますそれは "id"属性値に基づいて行いたいと思っています。これは可能ですか?もしそうなら、どのように?私はXPATHなどのようなものを学ぶために残っている時間がありません...これはJavaScriptを使用して行う必要があり、それだけではサーバー側のスクリプティングは許可されません。

また、いくつかのスクリプトは単に関数に入れようとすると動作しません。特定の変数が設定されていても定義されていないということが起こると、スクリプトがすべてのXMLファイルからの情報を新しい配列に追加し、HTML文書全体に簡単にアクセスできるようにします。

私は過去4〜5週間を自分だけでなく、多くの眠れない夜に手掛かりを与えるスクリプトをネットで検索しようとしました。

ご協力いただきありがとうございます。ありがとうございます:-)

+0

これを試しましたか? http://www.openjs.com/scripts/xml_parser/非常に一般的な方法と思われます。 –

答えて

9

あなたの問題を完全に理解していない限り、下記のJSFiddle /コードが役立ちます。私は2-dアレイを使用しました。

var profiles = xml.getElementsByTagName("profile"); 
var arr = []; 
for (var key in profiles){ 
    arr.push([]); 
    var nodes = profiles[key].childNodes; 
    for (var ele in nodes){ 
     if(nodes[ele]){ 
      arr[key].push(nodes[ele]); 
     } 
    } 
} 
console.log(arr); 
+0

ありがとうございます!私はそれを試みますが、それは動作するように見えます! :-) – GeordieDave1980

関連する問題