<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    龍行天下

      政 博
    隨筆 - 23, 文章 - 0, 評(píng)論 - 12, 引用 - 0
    數(shù)據(jù)加載中……

    對(duì)xml進(jìn)行增、刪、改的很好例子

    rule.hta
    ================

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    <HTML>
    <HEAD>
    <TITLE>XML Editer</TITLE>
    <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="myApp"
    BORDER="thick"
    BORDERSTYLE="normal"
    CAPTION="yes"
    ContextMenu="yes"
    ICON=""
    MAXIMIZEBUTTON="yes"
    MINIMIZEBUTTON="yes"
    scroll="no"
    selection="no"
    SHOWINTASKBAR="yes"
    SINGLEINSTANCE="yes"
    SYSMENU="yes"
    VERSION="1.0"
    WINDOWSTATE="normal"
    >

    <style type="text/css">
    </style>
    </HEAD>

    <script language="javascript">

    // load the xml file
    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
    xmlDoc.async = false;
    xmlDoc.resolveExternals = false;
    xmlDoc.load("rule.xml");

    // load the xsl file
    var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
    xslDoc.async = false;
    xslDoc.resolveExternals = false;
    xslDoc.load("rule.xsl");

    // create the xslt object
    var xslt = new ActiveXObject("Msxml2.XSLTemplate");
    xslt.stylesheet = xslDoc;
    var xslProc = xslt.createProcessor();
    xslProc.input = xmlDoc;

    var checked_count = 0;
    var cur_page = 1;
    var total_page = 1;

    function OutputDocument(number){
    xslProc.addParameter("ename", number);
    xslProc.addParameter("startno", (cur_page - 1)*10);
    xslProc.addParameter("endno", cur_page*10);
    xslProc.transform();

    return xslProc.output;
    }

    function delete_node(node){
    if( node.hasChildNodes() ) { 
    var kids = node.childNodes; 
    for(var i=0;i<kids.length;i++) { 
    delete_node(kids);
    }
    }
    node.parentNode.removeChild(node);
    }

    function delete_rule(id){
    var node = xmlDoc.selectSingleNode("/rules/rule[event/id="+id+"]");
    delete_node(node);
    }

    function modify_node(node){
    node.selectSingleNode("event/id").text = modify_id.value;
    node.selectSingleNode("event/name").text = modify_name.value;
    if( modify_state.checked ) {
    node.selectSingleNode("enable").text = "true";
    } else {
    node.selectSingleNode("enable").text = "false";
    }
    }

    function modify_rule(id){
    var node = xmlDoc.selectSingleNode("/rules/rule[event/id="+id+"]");
    modify_node(node);
    }

    function add_rule(){
    var id = xmlDoc.createElement("id");
    id.appendChild(xmlDoc.createTextNode(add_id.value));
    var name = xmlDoc.createElement("name");
    name.appendChild(xmlDoc.createTextNode(add_name.value));

    var event = xmlDoc.createElement("event");
    event.appendChild(id);
    event.appendChild(name);

    var enable = xmlDoc.createElement("enable");
    if( add_state.checked ) {
    enable.appendChild(xmlDoc.createTextNode("true"));
    } else {
    enable.appendChild(xmlDoc.createTextNode("false"));
    }

    var rule = xmlDoc.createElement("rule");
    rule.appendChild(event);
    rule.appendChild(enable);

    var parent = xmlDoc.selectSingleNode("/rules");
    if( parent.hasChildNodes() ) {
    parent.insertBefore(rule, parent.firstChild);
    } else {
    parent.appendChild(rule);
    }
    }

    function gotoPage(pageno){
    if( pageno < 1 ) {
    cur_page = 1;
    } else if( pageno >= total_page ) {
    cur_page = total_page;
    } else {
    cur_page = pageno;
    }
    Transform();
    }

    function saveXML(){
    xmlDoc.save("rule.xml");
    }

    function protectsubmit(val){
    if( val == 1 ) { //add
    if( add_id.value < 10000 || add_name.value == "" ) {
    window.alert("事件號(hào)必須是5位整數(shù)且事件名不能為空");
    } else if( xmlDoc.selectSingleNode("/rules/rule/event/id[. = " + add_id.value + "]") ) {
    window.alert("事件號(hào)" + add_id.value + "已經(jīng)存在");
    } else {
    add_rule();
    saveXML();
    Transform();
    }
    } else if( val == 2 ) { //modify
    var id = viewTable.rows[getFirstCheckedLine()].cells[2].innerText;
    if( modify_id.value < 10000 || modify_name.value == "" ) {
    window.alert("事件號(hào)必須是5位整數(shù)且事件名不能為空");
    } else if( id != modify_id.value && xmlDoc.selectSingleNode("/rules/rule/event/id[. = " + modify_id.value + "]") ) {
    window.alert("事件號(hào)" + modify_id.value + "已經(jīng)存在");
    } else {
    if( confirm("確認(rèn)修改?") ) {
    modify_rule(id);
    saveXML();
    Transform();
    }
    }
    } else if( val == 3 ) { //delete
    if( !confirm("確認(rèn)刪除?") ) {
    return;
    }
    for( var i = 1; i < viewTable.rows.length; i++ ) {
    var id = viewTable.rows.cells[2].innerText;
    if( eval("viewchk_" + id + ".checked") == true ) {
    delete_rule(id)
    }
    }
    saveXML();
    Transform();
    } else if( val == 4 ) { //select all
    checked_count = viewTable.rows.length - 1;
    for( var i = 1; i < viewTable.rows.length; i++ ) {
    var id = viewTable.rows.cells[2].innerText;
    eval("viewchk_" + id + ".checked = true");
    }
    changeState();
    } else if( val == 5 ) { //cancel all
    checked_count = 0;
    for( var i = 1; i < viewTable.rows.length; i++ ) {
    var id = viewTable.rows.cells[2].innerText;
    eval("viewchk_" + id + ".checked = false");
    }
    changeState();
    }
    }

    function getFirstCheckedLine(){
    for( var i = 1; i < viewTable.rows.length; i++ ) {
    var id = viewTable.rows.cells[2].innerText;
    if( eval("viewchk_" + id + ".checked") == true ) {
    return i;
    }
    }
    return 0;
    }

    function checkOVItem(val){
    if( eval("viewchk_" + val+".checked") == true ) {
    checked_count++;
    } else {
    checked_count--;
    }
    changeState();
    }

    function changeState(){
    if( checked_count ) {
    delete_btn.disabled = false;
    cancel_all_btn.disabled = false;
    } else {
    delete_btn.disabled = true;
    cancel_all_btn.disabled = true;
    }
    if( (checked_count + 1) == viewTable.rows.length ) {
    select_all_btn.disabled = true;
    } else {
    select_all_btn.disabled = false;
    }

    if( checked_count == 1 ) {
    modify_btn.disabled = false;
    modify_id.disabled = false;
    modify_name.disabled = false;
    modify_state.disabled = false;
    var id = getFirstCheckedLine();
    modify_id.value = viewTable.rows(id).cells(2).innerText;
    modify_name.value = viewTable.rows(id).cells(3).innerText;
    if( viewTable.rows(id).cells(1).innerText == "有效" ) {
    modify_state.checked = true;
    } else {
    modify_state.checked = false;
    }
    } else {
    modify_btn.disabled = true;
    modify_id.disabled = true;
    modify_name.disabled = true;
    modify_state.disabled = true;
    modify_id.value="請(qǐng)選擇一條規(guī)則";
    modify_name.value="請(qǐng)選擇一條規(guī)則";
    }
    }

    function showPageInfo(){
    if( total_item.value == 0 ) {
    total_page = 1;
    } else {
    total_page = Math.floor((9 + parseInt(total_item.value)) / 10);
    }
    var txt = " 共"+total_item.value+"條記錄";
    var prev_page = cur_page - 1;
    var next_page = parseInt(cur_page) + 1;
    if( cur_page > 1 ) {
    txt += " <input type='button' value='<' onClick='gotoPage(" + prev_page + ")'/>"
    } else {
    txt += " <input type='button' value='<' onClick='gotoPage(" + prev_page + ")' disabled/>"
    }
    if( cur_page < total_page ) {
    txt += " <input type='button' value='>' onClick='gotoPage(" + next_page + ")'/>"
    } else {
    txt += " <input type='button' value='>' onClick='gotoPage(" + next_page + ")' disabled/>"
    }

    txt += " 第<input type='text' id='page_number' size='4' maxlength='4' value='" + cur_page + "' onBlur='gotoPage(this.value)'/>頁 共" + total_page + "頁";
    page_info.innerHTML = txt;
    // window.alert(txt);
    }

    function Transform(){
    var txt = document.getElementById("ename").value;
    var str = OutputDocument(txt);
    rule_list.innerHTML = str;
    checked_count = 0;
    showPageInfo();
    changeState();
    // window.alert(str);
    }
    </script>

    <BODY onLoad="Transform()">

    <table width="550" border="1" cellpadding="0" cellspacing="0" style="border-collapse:collapse;">
    <tr>
    <td>
    <table width="100%" border="0" cellpadding="0" cellspacing="0" style="border-collapse:collapse;">
    <TR height=5><td colspan=10 style="font-size:0px;"></td></TR>
    <TR height=25>
    <td colspan=3 align=center>事件名包含:</td>
    <td colspan=3 align=center><input type="text" value="" id="ename" size="35" maxlength="16"/></td>
    <td colspan=4><input type="button" value="搜索" onClick="Transform()"/></td>
    </TR>
    <TR height=1><td colspan=10 bgcolor=#2b7297></td></TR>
    <TR height=30>
    <td width=45 align=center><b>添加</b></td>
    <td width=5 align=center><font color=gray>|</font></td>
    <td width=50 align=center>事件號(hào)</td>
    <td width=55 align=center><input type="text" name="add_id" value="" size="5" maxlength="5" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"></td>
    <td width=55 align=center>事件名</td>
    <td width=* align=center><input type="text" name="add_name" maxlength="48" value=""></td>
    <td width=70 align=center>是否使用</td>
    <td width=30 align=center>
    <input type='checkbox' name='add_state' checked>
    </td> 
    <td width=5 align=center><font color=gray>|</font></td>
    <td width=70 align=center><input type="button" name="add_btn" value="確定" onClick="protectsubmit(1)"></td>
    </TR>
    <TR height=1><td colspan=10 bgcolor=#2b7297></td></TR>
    <TR height=30>
    <td width=45 align=center><b>修改</b></td>
    <td width=5 align=center><font color=gray>|</font></td>
    <td width=50 align=center>事件號(hào)</td>
    <td width=55 align=center>
    <input type="text" name="modify_id" value="<請(qǐng)選擇一條規(guī)則>" size="5" maxlength="5" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" disabled></td>
    <td width=55 align=center>事件名</td>
    <td width=* align=center>
    <input type="text" name="modify_name" maxlength="48" value="<請(qǐng)選擇一條規(guī)則>" disabled></td>
    <td width=70 align=center>是否使用</td>
    <td width=30 align=center>
    <input type='checkbox' name='modify_state' disabled>
    </td> 
    <td width=5 align=center><font color=gray>|</font></td>
    <td width=70 align=center><input type="button" name="modify_btn" value="確定" onClick="protectsubmit(2)"></td>
    </TR>
    <TR height=1><td colspan=10 bgcolor=#2b7297></td></TR>
    <TR height=30>
    <td colspan=5 align=left class=tablefont></td>
    <td align=right><input type="button" name="select_all_btn" value="全部選擇" onClick="protectsubmit(4)"></td>
    <td colspan=2 align=right><input type="button" name="cancel_all_btn" value="全部不選" onClick="protectsubmit(5)" disabled></td>
    <td align=center></td>
    <td align=center><input type="button" name="delete_btn" value="刪除" onClick="protectsubmit(3)" disabled></td>
    </TR>
    <TR height=30><td colspan=4>規(guī)則列表</td><TD colspan=6 align=right><div id="page_info" name="page_info"/></TR>
    <TR>
    <TD colspan=10><div id="rule_list" name="rule_list"/></TD>
    </TR>
    <TR height=5><td colspan=10></td></TR>
    </table>
    </td>
    </tr>
    <tr>
    </tr>
    </table>

    </BODY>
    </HTML>


    rule.xml
    ============
    <?xml version="1.0" encoding="GB2312"?>
    <?xml:stylesheet type="text/xsl" href="rule.xsl"?>
    <rules>
    <rule>
    <event>
    <id>10001</id>
    <name>TFTP下載文件</name>
    </event>
    <enable>false</enable>
    </rule>
    <rule>
    <event>
    <id>10002</id>
    <name>TFTP上傳文件</name>
    </event>
    <enable>false</enable>
    </rule>
    <rule>
    <event>
    <id>10003</id>
    <name>telnet登錄成功</name>
    </event>
    <enable>false</enable>
    </rule>

    </rules>

    rule.xsl
    =============
    <?xml version="1.0" encoding="GB2312"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:strip-space elements="*"/>
    <xsl:output method= "html"/>
    <xsl:param name="ename">undefined</xsl:param>
    <xsl:param name="startno">undefined</xsl:param>
    <xsl:param name="endno">undefined</xsl:param>

    <xsl:template match="/">
    <html>
    <body>
    <xsl:apply-templates select="rules"/>
    </body>
    </html>
    </xsl:template>

    <xsl:template match="rules">
    <input type="hidden" name="total_item">
    <xsl:attribute name="value"><xsl:value-of select="count(rule[contains(event/name, $ename)])"/></xsl:attribute>
    </input>
    <TABLE id="viewTable" name="viewTable" width="100%" border="1" bordercolor="#85979f" cellSpacing="0" cellPadding="0" style="border-collapse:collapse;">
    <tr height="25">
    <TD width="10%" align="center">選擇</TD>
    <TD width="10%" align="center">狀態(tài)</TD>
    <TD width="10%" align="center">事件號(hào)</TD>
    <TD width="*" align="center">事件名</TD>
    </tr>

    <xsl:for-each select='rule[contains(event/name, $ename)]'>
    <xsl:sort select="event/id"/>
    <xsl:if test="position()> $startno and position()<= $endno">
    <tr>
    <td align="center">
    <input type='checkbox'>
    <xsl:attribute name="name">viewchk_<xsl:value-of select="event/id"/></xsl:attribute>
    <xsl:attribute name="value"><xsl:value-of select="event/id"/></xsl:attribute>
    <xsl:attribute name="onClick">checkOVItem(<xsl:value-of select="event/id"/>)</xsl:attribute>
    </input>
    </td>
    <xsl:choose>
    <xsl:when test="enable[. = 'true']">
    <td align="center">有效</td>
    </xsl:when>
    <xsl:otherwise>
    <td align="center">禁用</td>
    </xsl:otherwise>
    </xsl:choose>
    <td align="center"><xsl:value-of select="event/id"/></td>
    <td><xsl:value-of select="event/name"/></td>
    </tr>
    </xsl:if>
    </xsl:for-each>
    </TABLE>
    </xsl:template>

    </xsl:stylesheet>

    posted on 2007-12-29 15:44 feingto 閱讀(359) 評(píng)論(0)  編輯  收藏 所屬分類: Ajax、JAVASCRIPT

    主站蜘蛛池模板: 在线免费观看亚洲| 理论秋霞在线看免费| 手机在线毛片免费播放| 美景之屋4在线未删减免费| 亚洲综合精品香蕉久久网| 免费能直接在线观看黄的视频 | 免费播放特黄特色毛片| 久久一区二区三区免费| 亚洲黄色激情视频| 亚洲国产91精品无码专区| 亚洲网站在线免费观看| 黄色大片免费网站| 亚洲婷婷综合色高清在线| 亚洲Av无码国产情品久久| 在线观看免费av网站| 一级成人生活片免费看| 亚洲av无码久久忘忧草| 亚洲美女又黄又爽在线观看| 成年男女男精品免费视频网站| 中文字幕无码免费久久9一区9 | 国产精品亚洲专区无码唯爱网| 黑人精品videos亚洲人| 国产成人在线免费观看| 国产精品永久免费10000| 中文字幕在线免费播放| 噜噜综合亚洲AV中文无码| 亚洲精品国产成人中文| 亚洲毛片αv无线播放一区| 国产a级特黄的片子视频免费| 91九色精品国产免费| 久久青草91免费观看| 窝窝影视午夜看片免费| 学生妹亚洲一区二区| 亚洲视频免费一区| 国产精品亚洲一区二区三区在线| 免费观看午夜在线欧差毛片| 一个人在线观看视频免费| 日本免费人成视频在线观看| 男女一进一出抽搐免费视频 | 中国一级特黄的片子免费| 亚洲熟女综合色一区二区三区|