2009-07-05 41 views
7

Tôi có một tập tin XML trong một chuỗi trong định dạng này:Thao tác chuỗi XML trong JS?

<item> 
    <name>xxx</name> 
    <id>yyy</id> 

    <view> 
     <name>view1_name</name> 
     <view_attrs> 
      <view_attr> 
       <name>Age</name> 
       <values> 
        <value>18-36</value> 
        <value>55-70</value> 
       </values> 
      </view_attr> 
      <view_attr> 
       <name>Status</name> 
       <values> 
        <value>Single</value> 
        <value>Married</value> 
       </values> 
      </view_attr> 
     </view_attrs> 
    </view> 


    <view> 
     <name>view2_name</name> 
     <view_attrs> 
      <view_attr> 
       <name>Age</name> 
       <values> 
        <value>37-54</value> 
       </values> 
      </view_attr> 
     </view_attrs> 
    </view> 


    <children> 
     <item> 
     ... 
     </item> 
     <item> 
     ... 
      <children> 
      ... 
      </children> 
     </item> 
    </children> 

</item> 

Những gì tôi muốn làm ví dụ, được thêm/xóa một mục, một đứa trẻ, các giá trị thay đổi trong một view_attr cụ thể và như vậy?

Phương pháp dễ nhất và đơn giản nhất để làm như vậy là gì?

Xin cảm ơn trước. :)

Trả lời

6

jQuery kết thúc tốt đẹp parsers XML cụ trình duyệt, do đó bạn chỉ có thể sử dụng sau đây để thu được một tài liệu từ một chuỗi:

var xmlDoc = $('<foo><bar1/><bar2/></foo>')[0];

Bây giờ bạn có thể sử dụng thao tác DOM tiêu chuẩn để thêm hoặc xóa các nút:

var bar2 = xmlDoc.getElementsByTagName('bar2')[0]; 
var bar3 = document.createElement('bar3'); 
xmlDoc.appendChild(bar3); 
xmlDoc.removeChild(bar2);
+0

và cách thay đổi giá trị bên trong một phần tử. –

+0

bạn có thể sử dụng tất cả các chức năng thao tác DOM tiêu chuẩn, bao gồm setAttribute, vv http://www.w3.org/DOM/ –

1

Nếu khả năng tương thích giữa các trình duyệt không phải là vấn đề, tôi khuyên bạn nên xem E4X. http://en.wikipedia.org/wiki/ECMAScript_for_XML Nó làm việc với XML một niềm vui. Hiện tại chỉ có tác phẩm ở Rhino và Gecko.