7

これは約100万回以上質問されていることは知っていますが、私が見つけたすべてのスクリプトは、質問をしている人のために調整されているか、まったく機能しません。基本的に、ユニ割り当てとしてJQueryのようなライブラリの代わりに通常のJavaScriptを使用することに制限されていますが、JQueryが常にオプションであるとは限らないため、将来の使用のために保存したいと思います。

とにかく追いかけます。かなり単純な構造を含む「profiles.xml」というXMLファイルがあります。

 <?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>j.blogs@me.com</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>

したがって、基本的には、アクセスする必要があるたびに各プロファイルを個別の新しい配列にロードしたいのですが、それに加えて、「id」属性値に基づいてロードしたいと思います。これは可能ですか?もしそうなら、どのように?XPATHなどを学ぶ時間はありません...これはJavaScriptを使用して行う必要があり、それだけではサーバー側のスクリプトは許可されません。

また、前述のように、一部のスクリプトは、関数に入れようとすると単に機能しないため、特定の変数が設定されていても定義されていないため、スクリプトがXMLからすべての情報を渡す必要があると表示されます。新しい配列にファイルを追加し、HTMLドキュメント全体から簡単にアクセスできるようにします。

誰か助けてください。私は過去4〜5週間、自分でこれを解決しようと努力してきました。また、ネットで手がかりとなる可能性のあるスクリプトを探して眠れない夜を過ごしました。

どんな助けでも大歓迎です!ありがとう :-)

4

1 に答える 1

11

問題を完全に理解していない限り、以下の JSFiddle/コードが役立つはずです。2次元配列を使用しました。

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);
于 2012-05-20T17:00:24.543 に答える