2011-03-06 45 views
2

我有一些XML類似如下:如何使用javascript動態地將新屬性插入到xml標籤中?

<dict> 
     <key>Track ID</key> 
     <integer>4896</integer> 
     <key>Name</key> 
     <string>Let 'cha Boy Go (DIRTY) F/B.o.B</string> 
     <key>Artist</key> 
     <string>4-Ize</string> 
     <key>Grouping</key> 
     <string>www.2dopeboyz.com</string> 
     <key>Genre</key> 
     <string>Hip-Hop</string> 
     <key>Kind</key> 
     <string>MPEG audio file</string> 
     <key>Size</key> 
     <integer>5837048</integer> 
     <key>Total Time</key> 
     <integer>243121</integer> 
     <key>Year</key> 
     <integer>2010</integer> 
     <key>BPM</key> 
     <integer>80</integer> 
     <key>Date Modified</key> 
     <date>2010-09-05T05:51:23Z</date> 
     <key>Date Added</key> 
     <date>2010-09-04T15:37:43Z</date> 
     <key>Bit Rate</key> 
     <integer>192</integer> 
     <key>Sample Rate</key> 
     <integer>44100</integer> 
     <key>Comments</key> 
     <string>80.3</string> 
     <key>Normalization</key> 
     <integer>7646</integer> 
     <key>Persistent ID</key> 
     <string>D9FAAD3E0203FA18</string> 
     <key>Track Type</key> 
     <string>File</string> 
     <key>Location</key> 
    </dict> 

如何編寫JavaScript插入某些標籤屬性?

+2

這裏有什麼範圍?你在哪裏以及如何閱讀該XML? – 2011-03-06 13:53:43

+0

你可以使用jQuery嗎? – Groovetrain 2011-03-06 13:55:32

+0

查看[DOM 3 Core中的元素接口](http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-745549614)。它包含設置屬性的方法。 – 2011-03-06 14:39:11

回答

1

您可以加載使用XmlDOM的XML,使用XPath的找到一個元素,然後DOM操作進行修改:

var xpath = "/dict/key[. = 'Name']"; 
var element = null; 

// IE: 
if (ie) 
{ 
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async = "false"; 
    xmlDoc.loadXML("<dict><key>Track ID</key><integer>4896</integer><key>Name</key><string>Let 'cha Boy Go (DIRTY) F/B.o.B</string></dict>"); 

    // Find the element using xpath. 
    var values = xmlDoc.selectNodes(xpath); 
    element = values[0]; 
} 
// Others: 
else 
{ 
    parser = new DOMParser(); 
    xmlDoc = parser.parseFromString("<dict><key>Track ID</key><integer>4896</integer><key>Name</key><string>Let 'cha Boy Go (DIRTY) F/B.o.B</string></dict>", "text/xml"); 

    // Find the element using xpath.  
    var values = xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE, null); 
    element = values.iterateNext(); 
} 

// Change/add the id of the selected element. 
element.setAttribute("id", "aga"); 
相關問題