‘XML’ Archive

jquery ajax read xml text and attribute

Below is example about using Jquery ajax to read text & attribute for each node of an internal xml file.

1. Example of the XML file included is below

<dates>
	<date value="2009-11-24">Tuesday, November 24</date>
	<date value="2009-11-25">Wednesday, November 25</date>
	<date value="2009-11-26">Thursday, November 26</date>
	<date value="2009-11-27">Friday, November 27</date>
	<date value="2009-11-28">Saturday, November 28</date>
	<date value="2009-11-29">Sunday, November 29</date>
	<date value="2009-11-30">Monday, November 30</date>
</dates>

2. Javascript jquery ajax call use to read text & attribute of the xml file above

function update_date_list()
{
    var dates = document.getElementById("ddl_date");
    var i = 0;
    jQuery.ajax({
		type: "GET",
		url: "date.xml",
		dataType: "xml",
		success: function(xml)
		{
			jQuery(xml).find('date').each(function(){
                dates.options[i] = new Option(jQuery(this).text(), jQuery(this).attr('value'));
				i++;
			});
		}
	});
}

3. For each xml node, we will use to create drop down list items

<select id="ddl_date" name="ddl_date">
	<option value="2009-11-24">Tuesday, November 24</option>
	<option value="2009-11-25">Wednesday, November 25</option>
	<option value="2009-11-26">Thursday, November 26</option>
	<option value="2009-11-27">Friday, November 27</option>
	<option value="2009-11-28">Saturday, November 28</option>
	<option value="2009-11-29">Sunday, November 29</option>
	<option value="2009-11-30">Monday, November 30</option>
</select>

To see the real resutl, let’s check it out and view page source.

lipsum (Lorem Ipsum) API Web Service

This uses to get dummy text from Lipsum.com by calling Lipsum API Web Service

http://www.lipsum.com/feed/xml?amount=2&&what=paragraphs

Where as:

	1. amount: mount of words || paragraphs || lists || bytes
	2. what: type of content will be generated: words || paragraphs || lists || bytes

It will return a XML format like this:

<?xml version="1.0" encoding="iso-8859-1"?>
<feed>
<lipsum>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque erat, suscipit sit amet commodo ac, ultricies eget augue. In lectus nulla, adipiscing vel pharetra vitae, porttitor a erat. Ut faucibus magna a mi iaculis id porta erat aliquam. Donec pretium, nunc hendrerit euismod varius, risus nulla sagittis sem, eu feugiat augue enim eu ipsum. Morbi ut nibh eros. Pellentesque vulputate, turpis nec consectetur malesuada, libero justo pretium nisi, ac blandit dui magna et ligula. Mauris sit amet mollis augue. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at justo venenatis nisi consectetur luctus. Nullam eleifend mauris in nibh pellentesque lobortis. Cras eu malesuada odio.
Fusce sit amet nibh hendrerit lorem venenatis tristique sit amet vel turpis. Phasellus sagittis, velit ut condimentum semper, est dolor facilisis mi, et iaculis neque nisi non turpis. Morbi id porttitor ante. Morbi odio ligula, gravida et cursus vitae, eleifend ac nisi. Morbi rutrum, justo sed rutrum posuere, eros leo venenatis tortor, a tincidunt ligula odio a odio. Cras id turpis ligula, id euismod dolor. Donec vel magna nibh. Maecenas accumsan, orci sit amet tempor bibendum, libero velit fermentum sapien, quis fermentum ante tortor id nunc. Nulla vel viverra tellus. Nunc ultrices rhoncus felis, eu mollis sapien malesuada in. Quisque ut elit elit, sed placerat sapien. Vivamus placerat posuere ligula, ut sagittis nunc placerat sed. Praesent non augue ut augue fermentum auctor. Nam velit ante, accumsan eu condimentum vehicula, euismod sit amet justo. Etiam in sem ipsum, quis gravida ligula. Duis facilisis dictum magna sit amet interdum. Sed magna mi, auctor sit amet fermentum ut, convallis sed augue. Sed nibh massa, interdum ut mattis eu, vehicula et nulla. Nam eu pulvinar tortor.</lipsum>
<generated>Generated 2 paragraphs, 283 words, 1834 bytes of Lorem Ipsum</generated>
<donatelink>http://www.lipsum.com/donate</donatelink>
<creditlink>http://www.lipsum.com/</creditlink>
<creditname>James Wilson</creditname>
</feed>

Click here to view the result above.

asp.net c# check bad word

What do we learn from this post:

  • 1. Load a xml file to XmlDocument
  • 2. Create a new for holding the words
  • 3. Loop through all the XmlNodes that meet specify XPath criteria
  • 4. Add the InnerText of each ChildNodes to List

Check Bad Word function and Demo

using System;
using System.Xml;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class test_check_bad_word : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string message = "your text here ...";
        String file = MapPath(".") + "/WordList.xml";

        if (CheckBadWord(file, message) == -1)
            Response.Write("Good");
        else
            Response.Write("Ac ac :( ");
    }

    public static Int32 CheckBadWord(string file_bad_words, String Str)
    {
        List<string> badWords = BadWordList(file_bad_words);

        if (Str == "" || Str.Length == 0 || badWords.Count == 0) return -1;
        Str = Str.ToLower();

        Int32 indexOf = -1;
        for (Int32 i = 0; i < badWords.Count; i++)
        {
            indexOf = Str.IndexOf(badWords[i].ToLower());
            if (indexOf != -1)
                break;
        }

        return indexOf;
    }

    public static List<string> BadWordList(string file)
    {
        List<string> words = new List<string>();

        XmlDocument xmlDoc = new XmlDocument();

        string query = "/WordList/word";

        xmlDoc.Load(file);

        foreach (XmlNode node in xmlDoc.SelectNodes(query))
        {
            words.Add(node.ChildNodes[0].InnerText);
        }
        return words;
    }
}

Bad word xml example

<?xml version="1.0" encoding="utf-8"?>
<WordList>
    <word><![CDATA[welfare monkey]]></word>
    <word><![CDATA[wetback]]></word>
    <word><![CDATA[WHACK OFF]]></word>
    <word><![CDATA[WHIP THE DUMMY]]></word>
    <word><![CDATA[white trash]]></word>
    <word><![CDATA[Whore]]></word>
    <word><![CDATA[WHORE-PIPE]]></word>
    <word><![CDATA[wigger]]></word>
    <word><![CDATA[Wiglet]]></word>
    <word><![CDATA[WILLING-TIT]]></word>
    <word><![CDATA[wop]]></word>
    <word><![CDATA[WORKING GIRL]]></word>
    <word><![CDATA[wrap head]]></word>
    <word><![CDATA[xxx]]></word>
    <word><![CDATA[YANK OFF]]></word>
    <word><![CDATA[YANK YOUR CRANK]]></word>
    <word><![CDATA[Yard ape]]></word>
    <word><![CDATA[Yugoshit]]></word>
    <word><![CDATA[Zipperhead]]></word>
    <word><![CDATA[mastur bate]]></word>
    <word><![CDATA[master bate]]></word>
    <word><![CDATA[m-a-s-t-u-r-b-a-t-e]]></word>
    <word><![CDATA[m.a.s.t.u.r.b.a.t.e]]></word>
    <word><![CDATA[m*a*s*t*u*r*b*a*t*e]]></word>
    <word><![CDATA[cuming]]></word>
    <word><![CDATA[cumin]]></word>
    <word><![CDATA[cummin]]></word>
    <word><![CDATA[cumming]]></word>
    <word><![CDATA[s.e.x.]]></word>
    <word><![CDATA[s.e.x]]></word>
    <word><![CDATA[s-e-x-]]></word>
    <word><![CDATA[s-e-x]]></word>
    <word><![CDATA[s*e*x*]]></word>
    <word><![CDATA[s*e*x]]></word>
    <word><![CDATA[b*l*o*w*j*o*b]]></word>
    <word><![CDATA[b.l.o.w.j.o.b]]></word>
    <word><![CDATA[b-l-o-w-j-o-b]]></word>
    <word><![CDATA[o*r*g*a*s*m]]></word>
    <word><![CDATA[o*r*g*a*s*m*]]></word>
    <word><![CDATA[o-r-g-a-s-m]]></word>
    <word><![CDATA[o.r.g.a.s.m]]></word>
    <word><![CDATA[vibrator]]></word>
    <word><![CDATA[crap]]></word>
    <word><![CDATA[rape]]></word>
</WordList>

Don’t forget to import or using namespace System.Collections.Generic for List and System.Xml for XmlDocument and you can expand as many as you want :D

Download the source code: aspx_check_bad_word

PHP drop down list Vietnamese Province List from XML

View result

Download the source code & xml province list: ddlprovincefromxml

<?php
$xml = simplexml_load_file("xml_province_list.xml");

$ddlProvince = "<select id=\"ddlProvince\" name=\"ddlProvince\">";

foreach($xml->children() as $child)
{
	$ddlProvince .= "<option value=\"" . $child["id"] . "\">" . $child . "</option>";
}
$ddlProvince .= "</select>";

echo $ddlProvince;
?>

XML Vietnamese Province List

Download the Vietnamese Province List xml_province_list

<?xml version="1.0" encoding="utf-8"?>
<provinces>
	<province id="1">An Giang</province>
	<province id="2">Bắc Cạn</province>
	<province id="3">Bình Dương</province>
	<province id="4">Bình Định</province>
	<province id="5">Bắc Giang</province>
	<province id="6">Bạc Liêu</province>
	<province id="7">Bắc Ninh</province>
	<province id="8">Bình Phước</province>
	<province id="9">Bến Tre</province>
	<province id="10">Bình Thuận</province>
	<province id="11">Cao Bằng</province>
	<province id="12">Cà Mau</province>
	<province id="13">Cần Thơ</province>
	<province id="14">Điện Biên</province>
	<province id="15">Đắc Lắc</province>
	<province id="16">Đà Nẵng</province>
	<province id="17">Đồng Nai</province>
	<province id="18">Đắc Nông</province>
	<province id="19">Đồng Tháp</province>
	<province id="20">Gia Lai</province>
	<province id="21">Hà Nội</province>
	<province id="22">Hòa Bình</province>
	<province id="23">Hồ Chí Minh</province>
	<province id="24">Hải Dương</province>
	<province id="25">Hà Giang</province>
	<province id="26">Hậu Giang</province>
	<province id="27">Hà Nam</province>
	<province id="28">Hải Phòng</province>
	<province id="29">Hà Tĩnh</province>
	<province id="30">Hà Tây</province>
	<province id="31">Hưng Yên</province>
	<province id="32">Kiên Giang</province>
	<province id="33">Khánh Hòa</province>
	<province id="34">Kon Tum</province>
	<province id="35">Long An</province>
	<province id="36">Lào Cai</province>
	<province id="37">Lai Châu</province>
	<province id="38">Lâm Đồng</province>
	<province id="39">Lạng Sơn</province>
	<province id="40">Nghệ An</province>
	<province id="41">Ninh Bình</province>
	<province id="42">Nam Định</province>
	<province id="43">Ninh Thuận</province>
	<province id="44">Phú Thọ</province>
	<province id="45">Phú Yên</province>
	<province id="46">Quảng Bình</province>
	<province id="47">Quảng Ngãi</province>
	<province id="48">Quảng Ninh</province>
	<province id="49">Quảng Nam</province>
	<province id="50">Quảng Trị</province>
	<province id="51">Sơn La</province>
	<province id="52">Sóc Trăng</province>
	<province id="53">Thái Bình</province>
	<province id="54">Tiền Giang</province>
	<province id="55">Thanh Hóa</province>
	<province id="56">Tây Ninh</province>
	<province id="57">Thái Nguyên</province>
	<province id="58">Tuyên Quang</province>
	<province id="59">Huế</province>
	<province id="60">Trà Vinh</province>
	<province id="61">Vĩnh Long</province>
	<province id="62">Vĩnh Phúc</province>
	<province id="63">Bà Rịa - Vũng Tàu</province>
	<province id="64">Yên Bái</province>
</provinces>