Archive for July, 2009
Unscape HTML in JavaScript
Posted by admin in JavaScript on July 13th, 2009
This function strips tags and converts the entity forms of special HTML characters to their normal form. I created this function with the help of code of Prototype JavaScript library.
<script language="javascript"> function unscapeHTML(str) { var div = document.createElement('div'); div.innerHTML = str.replace(/<\/?[^>]+>/gi, ''); if (div.childNodes[0]) { if (div.childNodes.length > 1) { var retStr; for (var i = 0; i < div.childNodes.length; i++) { retStr += div.childNodes[i].nodeValue; } return retStr; } else { return div.childNodes[0].nodeValue; } } else { return ''; } } </script>
How you can use it.
<script language="javascript"> var1 = 'x > 10'; alert(unscapeHTML(var1)); // This will alert 'x > 10' var2 = '<h1>Pride & Prejudice</h1>'; alert(unscapeHTML(var2)); // This will alert 'Pride & Prejudice' </script>
Convert XML to Array using DOM extension in PHP5
The xml2array class convert the XML stored in a string into an ARRAY. We are using the DOM extension of PHP5. The DOM extension replaced the DOM XML extension available in PHP4. The DOM XML extension is depreciated in PHP5.
<?php class xml2array { function xml2array($xml) { if (is_string($xml)) { $this->dom = new DOMDocument; $this->dom->loadXml($xml); } return FALSE; } function _process($node) { $occurance = array(); foreach($node->childNodes as $child) { $occurance[$child->nodeName]++; } if($node->nodeType == XML_TEXT_NODE) { $result = html_entity_decode(htmlentities($node->nodeValue, ENT_COMPAT, 'UTF-8'), ENT_COMPAT,'ISO-8859-15'); } else { if($node->hasChildNodes()){ $children = $node->childNodes; for($i=0; $i<$children->length; $i++) { $child = $children->item($i); if($child->nodeName != '#text') { if($occurance[$child->nodeName] > 1) { $result[$child->nodeName][] = $this->_process($child); } else { $result[$child->nodeName] = $this->_process($child); } } else if ($child->nodeName == '#text') { $text = $this->_process($child); if (trim($text) != '') { $result[$child->nodeName] = $this->_process($child); } } } } if($node->hasAttributes()) { $attributes = $node->attributes; if(!is_null($attributes)) { foreach ($attributes as $key => $attr) { $result["@".$attr->name] = $attr->value; } } } } return $result; } function getResult() { return $this->_process($this->dom); } } ?>
We can use this class like this.
<?php $obj = new xml2array($XML_string); $XML_array = $obj->getResult(); ?>