Skip to main content

Different ways of parsing xml data

Here i show the example for parsing xml data, using jquery, javascript and php.
Here is a sample xml file, we are using, msg.xml:

<messages>
    <message>
    <name>Sam</name>   
    <msg>Hi Anna</msg>
    </message>
    <message>
    <name>Kelly</name>
    <msg>Hi Anna</msg>
    </message>
    <message>
    <name>Sam</name>
    <msg>Hi Anna</msg>
    </message>
    <message>
    <name>Sam</name>
    <msg>Hello Anna</msg>
    </message>
    <message>
    <name>Kelly</name>
    <msg>Anna</msg>
    </message>
</messages>

The source code:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",dname,false);
xhttp.send();
return xhttp.responseXML;
}

xmlDoc=loadXMLDoc("msg.xml");
x=xmlDoc.getElementsByTagName("name")[0];
y=x.childNodes[0];
document.write(y.nodeValue);
document.write("<br>");

var xml = "<music><album>Michael Jackson</album></music>";
var result = $(xml).find("album").text();
document.write(result);
document.write("<br>");
</script>
</head>
<body>
<?php
$xml = "<books>
<book>Patterns of Enterprise Application Architecture</book>
<book>Design Patterns: Elements of Reusable Software Design</book>
<book>Clean Code</book>
</books>";

$dom = new DOMDocument;
$dom->loadXML($xml);
$books = $dom->getElementsByTagName('book');

foreach ($books as $book) {
    echo $book->nodeValue.'<br>';
}
?>
</body>
</html>

Output:
Sam
Michael Jackson
Patterns of Enterprise Application Architecture
Design Patterns: Elements of Reusable Software Design
Clean Code

Comments

Popular posts from this blog

Joomla validate chrono forms using jquery

It is a common practice to use Chrono forms in our joomla site to setup various forms in the site, be it a contact us form, submit a ticket form, or whatever. I have set the option "validate form" to "No" under chronoform settings in admin panel, and also preferred to not include any js or css files. For validating the chrono forms, i prefer jquery. So first lets add jquery support in our joomla. It is quite simple: 1. Download jquery.js and jquery_min.js (1.4.2 version is enough) and place them in media/system/js folder of your joomla. 2. Edit libraries->joomla->html->html->behavior.php, and add the following function below the mootools() function: function jQuery($debug = null)     {         static $loaded;         global $mainframe;         // Only load once         if ($loaded) {    ...

htaccess disable directory browsing, disable file listing, disable file access

There may be some personal or secure data in a file, that you want to hide from the end user, when it is viewed through a web browser. Ex: http://www.example.com/user_files/24/chat.txt In the above scenario, if the file "chat.txt" contains a secure data, and you dont want to allow end users to directly access the file, or to disable the file listing in the folder "user_files" or "24", use the below code in your .htaccess file inside "user_files" folder: Options -Indexes order allow,deny deny from all

php loop images in a folder, display them

This code will loop all the images inside "images" folder and display them. For every 7 images, a new row is added. <table> <tr> <?php $photo_dir = "images"; $files = glob($photo_dir."/*.*"); for ($i=0; $i<count($files); $i++) { $j = $i+1; ?> <td height="25" align="center"> <?php $num = $files[$i]; $img_name = explode(".", basename($num)); echo '<a href="'.$num.'"> <img src="'.$num.'" width="120" height="120" style="border:4px solid #FFF;"></a>'; // .$img_name[0]; ?> </td> <?php if($j % 7 == 0) echo '</tr><tr>'; } ?> </tr> </table>