2012-10-03 47 views
12

Làm cách nào để nhúng XML vào trang HTML?Nhúng XML vào HTML

Tôi đã suy nghĩ sử dụng CDDATA sẽ là phương pháp tốt nhất nhưng tôi gặp lỗi trong tài liệu HTML khi tải trang.

<script><![CDATA[ ... ]]></script> 

Tôi cần nhúng tài liệu XML để tìm nạp sau bằng JavaScript. Tôi cần phải làm điều này kể từ khi người dùng mở nó, họ có thể không có quyền truy cập internet.

+0

CDATA là có nghĩa là để nhúng dữ liệu nhân vật vào XML, không nhúng XML sang HTML (HTML không có delimiters như vậy). – BoltClock

+0

Miễn là XML không chứa '' ở bất cứ nơi nào, bạn có thể chỉ cần đặt nó bên trong các thẻ script (không có phần CDATA). Cung cấp cho tập lệnh một loại tùy chỉnh để nó không được hiểu là JavaScript. –

+0

Điều này có thể hữu ích: http://stackoverflow.com/questions/7816500/embed-xml-in-html-firefox-compatible – MikeB

Trả lời

25

Miễn là XML không chứa </script> ở bất kỳ đâu, bạn có thể đặt nó bên trong thẻ tập lệnh với thuộc tính tùy chỉnh type (và không có phần CDATA). Cung cấp thẻ tập lệnh cho thuộc tính id để bạn có thể tìm nạp nội dung.

<script id="myxml" type="text/xmldata"> 
    <x> 
     <y z="foo"> 

     </y> 
    </x> 
</script>​ 

... 

<script> alert(document.getElementById('myxml').innerHTML);​ </script> 

http://jsfiddle.net/hJuPs/

+0

Loại thiết lập = "text/xml" là mẹo tôi đã bỏ lỡ! Cảm ơn! – amcdnl

+0

@AustinMcDaniel lưu ý rằng nó không phải là "văn bản/xml" ... nó chỉ có * không * là "văn bản/javascript" –

+2

Và cũng lưu ý rằng loại là "văn bản/javascript" theo mặc định trong HTML5 nếu bỏ qua. –

1

Làm thế nào về:

<script> 
    var xml = '<element> \ 
       <childElement attr="value" /> \ 
       </element>'; 
</script> 

Điều đó sẽ cho phép bạn dễ dàng nhúng các XML để thu hồi sau trong javascript.

-1

Theo hướng dẫn ở đây, bạn có thể sử dụng thẻ 'xml' để nhúng dữ liệu XML trong một tài liệu HTML. Tuy nhiên, điều này ngầm hiển thị dữ liệu XML trong trình duyệt.

http://www.expertrating.com/courseware/XMLCourse/XML-Embedding-HTML-8.asp

+0

Theo liên kết tại đây, nó đã không được chấp nhận. Tuy nhiên, tôi chưa bao giờ thấy trang web này trước đây, cũng như tôi chưa từng nghe về thẻ trước khi xem câu hỏi ngăn xếp này. http://www.html-5.com/changes/deprecated/xml-tag.html – jwp