How to load the xml file content to a div.
Here is my HTML in which I need to load XML content
Try this:
var xml='<contentprogramming><category name = "My t" id = "1"><logo>http://123.png</logo><channel name="res" id= "1" type="ecommerce"><logo>http://11.png</logo> <items><item id="1"><image>http://11.jpg</image><title>Memory Card MSMT2G</title><details>$6.99</details><linkurl>http://www.test.com/Sony</linkurl></item><item id="2"><image>http://i2.jpg</image><title>Apple iPad </title><details>$579.95</details><linkurl>http://www.test.com/Apple</linkurl></item> </items></channel></category></contentprogramming>';
xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$xml.find( "category[name='My t'] logo" ).each(function () {
$("#news-container").append($(this).text() + "<br />");
}
-- you must call xml file first
$.ajax({
url: '/something.xml',
type: "GET",
dataType: "xml",
success: function (result) {
$(result).find('name').each(function () {
$("#news-container").append($(this).text() + "<br />");
}
}
});
You need to escape HTML special chars. Use this function before setting text into div.
function htmlSpecialChars(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """);
}
Try this:
// Load the xml file using ajax
$.ajax({
type: "GET",
url: "something.xml",
dataType: "xml",
success: function (xml) {
// Parse the xml file and get data
var xmlDoc = $.parseXML(xml),
$xml = $(xmlDoc);
$xml.find('category[name="My t"] logo').each(function () {
$("#news-container").append($(this).text() + "<br />");
});
}
});
Reference: 1. jQuery.ajax() 2. parseXML()
If you have a local file you want to read like I do, you can do the following:
<input type="file" id="file" accept="text/xml">
<script type="text/javascript">
document.getElementById('file').addEventListener('change', function (evt) {
if (!evt.target.files){
return;
}
var file = evt.target.files ? evt.target.files[0] : null,
reader = new FileReader();
reader.onload = function (evt) {
console.log(evt.target.result);
};
reader.readAsText(file);
});
</script>
This requires the user to select the file, but it does get you the contents of the file. It uses the HTML5 FileReader API.