0

XML フィードを JavaScript オブジェクト リテラルに変換する簡潔できちんとした方法はありますか?

私はこのXMLフィードを持っています

<jobs>
    <industry>
        <name>Technology</name>
        <area>Refrigiration</area>
        <area>Information Technology</area>
        <area>Electronics</area>
        <area>Avionics</area>
    </industry>

    <industry>
        <name>Agriculture</name>
        <area>Agri-Tourism</area>
        <area>Animal Husbandry</area>
        <area>Harvesting</area>
        <area>Poultry</area>
    </industry>
</jobs>

そしてそれを次のように変えたい:

var jobs = [
    {
        "name"  : "Technology",
        "areas" : [ "Refrigiration" , "Information Technology", "Electronics", "Avionics" ]
    },

    {
        "name"  : "Agriculture",
        "areas" : [ "Agri-Tourism" , "Animal Husbandry", "Harvesting", "Poultry" ]      
    },

    {
        "name"  : "Media",
        "areas" : [ "Journalism" , "Camera person", "Reality tv person", "Commentator" ]        
    }       
];

phpを使ってJSONオブジェクトのエンコードに成功しました。私が欠けているのは残りです。

4

4 に答える 4

0

XML を配列に変換する必要がありますhttps://stackoverflow.com/questions/4844476/xml-to-php-array

次に、php json_encode() を使用して配列を json に変換する必要があります。

于 2012-11-06T15:45:50.183 に答える
0

2 つのソリューション:

純粋な JQuery

jQuery の parseXMLをjQuery getと組み合わせて使用​​すると、必要なオブジェクトを取得できます。

$.get("http://www.example.com/path/to/file.xml", function(data){
   var xml = $.parseXML(data);
   console.log(xml);
});

PHP+Jクエリ

オブジェクトを既に json に解析している場合は、それを html ファイルに出力し、 jquery の getJSONを使用してそのファイルを取得します。

$.getJSON("http://www.example.com/json/feed",function(data){
   console.log(data);
});
于 2012-11-06T15:47:45.047 に答える
0

JavaScript コールバックで JSON エンコードされた文字列を受け取っている場合は、おそらく $.parseJSON() を実行して、jQuery がそれを文字列ではなく JSON オブジェクトとして扱うようにする必要があります。

于 2012-11-06T15:49:30.540 に答える
0
echo json_encode(simplexml_load_string("<jobs>
    <industry>
        <name>Technology</name>
        <area>Refrigiration</area>
        <area>Information Technology</area>
        <area>Electronics</area>
        <area>Avionics</area>
    </industry>

    <industry>
        <name>Agriculture</name>
        <area>Agri-Tourism</area>
        <area>Animal Husbandry</area>
        <area>Harvesting</area>
        <area>Poultry</area>
    </industry>
</jobs>"));

これにより、以下が得られます。

{
    "industry": [
        {
            "name": "Technology",
            "area": [
                "Refrigiration",
                "Information Technology",
                "Electronics",
                "Avionics"
            ]
        },
        {
            "name": "Agriculture",
            "area": [
                "Agri-Tourism",
                "Animal Husbandry",
                "Harvesting",
                "Poultry"
            ]
        }
    ]
}
于 2012-11-06T15:45:33.040 に答える