Nếu bạn sử dụng CDATA, thì bạn phải giải mã chính xác (textContent, value và innerHTML là các phương thức KHÔNG trả lại dữ liệu thích hợp).
chúng ta hãy nói rằng bạn sử dụng một cấu trúc xml tương tự như sau:
<response>
<command method="setcontent">
<fieldname>flagOK</fieldname>
<content>479</content>
</command>
<command method="setcontent">
<fieldname>htmlOutput</fieldname>
<content>
<![CDATA[
<tr><td>2013/12/05 02:00 - 2013/12/07 01:59 </td></tr><tr><td width="90">Rastreado</td><td width="60">Placa</td><td width="100">Data hora</td><td width="60" align="right">Km/h</td><td width="40">Direção</td><td width="40">Azimute</td><td>Mapa</td></tr><tr><td>Silverado</td><td align='left'>CQK0052</td><td>05/12/2013 13:55</td><td align='right'>113</td><td align='right'>NE</td><td align='right'>40</td><td><a href="http://maps.google.com/maps?q=-22.6766,-50.2218&iwloc=A&t=h&z=18" target="_blank">-22.6766,-50.2218</a></td></tr><tr><td>Silverado</td><td align='left'>CQK0052</td><td>05/12/2013 13:56</td><td align='right'>112</td><td align='right'>NE</td><td align='right'>23</td><td><a href="http://maps.google.com/maps?q=-22.6638,-50.2106&iwloc=A&t=h&z=18" target="_blank">-22.6638,-50.2106</a></td></tr><tr><td>Silverado</td><td align='left'>CQK0052</td><td>05/12/2013 18:00</td><td align='right'>111</td><td align='right'>SE</td><td align='right'>118</td><td><a href="http://maps.google.com/maps?q=-22.7242,-50.2352&iwloc=A&t=h&z=18" target="_blank">-22.7242,-50.2352</a></td></tr>
]]>
</content>
</command>
</response>
trong javascript, sau đó bạn sẽ giải mã bằng cách tải xml (jquery, ví dụ) vào một biến như XMLdoc dưới đây và sau đó nhận được các nodeValue cho sự xuất hiện thứ 2 (item(1)
) của thẻ content
xmlDoc.getElementsByTagName("content").item(1).childNodes[0].nodeValue
hoặc (cả hai ký hiệu là tương đương)
xmlDoc.getElementsByTagName("content")[1].childNodes[0].nodeValue
Nguồn
2013-12-06 16:26:59
Lý do tôi chọn không sử dụng CDATA, thường là phần lớn dữ liệu không yêu cầu thoát, và đó là một mớ hỗn độn để xem nhiều trình bao bọc CDATA trên văn bản không cần thoát.Phương pháp đầu tiên có nghĩa là đôi khi bạn có mã hóa HTML, nhưng phần lớn thời gian bạn có văn bản rõ ràng đẹp không có trình bao bọc không cần thiết. Tất nhiên điều này có thể khác nhau tùy thuộc vào dữ liệu điển hình của bạn. – AaronLS