午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    javascript操作xml(增刪改查)例子代碼hta版
    來源:易賢網(wǎng) 閱讀:903 次 日期:2014-08-12 16:46:53
    溫馨提示:易賢網(wǎng)小編為您整理了“javascript操作xml(增刪改查)例子代碼hta版”,方便廣大網(wǎng)友查閱!

    包括了stu.hta(是HTML應(yīng)用程序);

    stu.xml

    注意下面的HTML代碼必須保存為后綴名為hta否則當(dāng)對XML文件進(jìn)行操作(增刪改)的時(shí)候就會提示沒有權(quán)限!!

    文件stu.hta代碼如下:

    代碼如下:

    <html>

    <head>

    <title> 數(shù)據(jù)島的顯示 </title>

    <style type="text/css">

    #findPanel

    {

    position:absolute;

    width:220px;

    border:1px solid #666666;

    }

    #findPanelTitle

    {

    height:10px;

    background-color:#336699;

    cursor:move;

    }

    #findPanelContent

    {

    padding:5px 5px 5px 5px;

    background-color:#6699CC;

    }

    </style>

    </head>

    <body>

    <SCRIPT LANGUAGE="JavaScript">

    <!--

    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");

    xmlDoc.async = false;

    xmlDoc.resolveExternals = false;

    xmlDoc.load("stu.xml");

    //alert(xmlDoc.xml);

    //顯示數(shù)據(jù)

    function show(){

    var vbo = document.getElementById("s").value;

    if(vbo=="顯示學(xué)生信息"){

    document.getElementById('info').style.visibility='visible';

    document.getElementById("s").value="隱藏學(xué)生信息";

    }else{

    document.getElementById('info').style.visibility='hidden';

    document.getElementById("s").value="顯示學(xué)生信息";

    }

    }

    //查找

    function que(){

    document.getElementById("ad").style.visibility="visible";

    document.getElementById("qmd").style.visibility="visible";

    }

    /**

    * 解析XML文件函數(shù)

    * @param xmlDoc XML對象

    * @param name 屬性名稱 格式如:user.name

    */

    function getXMLProperty(xmlDoc, name) {

    var keys = name.split('.');

    var node = xmlDoc.documentElement;

    for(var i=0; i<keys.length; i++) {

    var childs = node.childNodes;

    var key = keys[i];

    for(var k=0; k<childs.length; k++) {

    var child = childs[k];

    if(child.nodeName == key) {

    if(child.childNodes.length == 1) {

    return child.text;

    } else {

    node = child;

    break;

    }

    }

    }

    }

    return "";

    }

    //返回父節(jié)點(diǎn)(通過節(jié)點(diǎn)名字和節(jié)點(diǎn)值)

    function getNod(nam,val){

    var node = xmlDoc.documentElement;

    var childs = node.childNodes;

    for (var i=0;i<childs.length ;i++ )

    {

    var child = childs[i];

    var childms = child.childNodes;

    for(var k=0;k<childms.length;k++){

    var childm = childms[k];

    if(childm.nodeName == nam && (childm.text).substring(0,6)==val){

    //alert(val);

    return child;

    }

    }

    }

    return '';

    }

    //通過父節(jié)點(diǎn)和子節(jié)點(diǎn)名返回子節(jié)點(diǎn)值

    function getNodVal(nods,nam){

    var childms = nods.childNodes;

    for(var k=0;k<childms.length;k++){

    var childm = childms[k];

    if(childm.nodeName == nam){

    //alert(childm.text);

    return childm.text;

    }

    }

    return '';

    }

    //通過父節(jié)點(diǎn)和子節(jié)點(diǎn)名返回子節(jié)點(diǎn)

    function getCurNod(nods,nam){

    var childms = nods.childNodes;

    for(var k=0;k<childms.length;k++){

    var childm = childms[k];

    if(childm.nodeName == nam){

    //alert(childm.text);

    return childm;

    }

    }

    return '';

    }

    //開始查找

    function query(){

    var renum = /^\d{5}$/;

    if(renum.exec(xh.value)){

    if(xmlDoc.selectSingleNode("/學(xué)生管理[學(xué)生/學(xué)號="+xh.value+"]")){

    var nod = getNod('學(xué)號',xh.value);

    //getNodVal(nod,'姓名');

    //getNodVal(nod,'性別');

    //getNodVal(nod,'籍貫');

    /*document.getElementById("xm").value=xmlDoc.selectSingleNode("/學(xué)生管理[學(xué)生/學(xué)號="+xh.value+"]").selectSingleNode("學(xué)生/姓名").text;

    document.getElementById("xb").value=xmlDoc.selectSingleNode("/學(xué)生管理[學(xué)生/學(xué)號="+xh.value+"]").selectSingleNode("學(xué)生/性別").text;

    document.getElementById("jg").value=xmlDoc.selectSingleNode("/學(xué)生管理[學(xué)生/學(xué)號="+xh.value+"]").selectSingleNode("學(xué)生/籍貫").text;

    document.getElementById("xh").disabled="true"; */

    document.getElementById("xm").value=getNodVal(nod,'姓名');

    document.getElementById("xb").value= getNodVal(nod,'性別');

    document.getElementById("jg").value= getNodVal(nod,'籍貫');

    }else{

    alert("該學(xué)號還沒有被占用!");

    }

    }else{

    alert("學(xué)號非法!學(xué)號5位數(shù)字!");

    return false;

    }

    }

    //修改

    function mod(){

    if(info_check()){

    if(xmlDoc.selectSingleNode("/學(xué)生管理[學(xué)生/學(xué)號="+xh.value+"]")){

    if(confirm("確認(rèn)修改?")){

    var nod = getNod('學(xué)號',xh.value);

    getCurNod(nod,'姓名').text=xm.value;

    getCurNod(nod,'性別').text=xb.value;

    getCurNod(nod,'籍貫').text=jg.value;

    /*

    xmlDoc.selectSingleNode("/學(xué)生管理[學(xué)生/學(xué)號="+xh.value+"]").selectSingleNode("學(xué)生/姓名").text=xm.value;

    xmlDoc.selectSingleNode("/學(xué)生管理[學(xué)生/學(xué)號="+xh.value+"]").selectSingleNode("學(xué)生/性別").text=xb.value;

    xmlDoc.selectSingleNode("/學(xué)生管理[學(xué)生/學(xué)號="+xh.value+"]").selectSingleNode("學(xué)生/籍貫").text=jg.value;

    */

    saveXML();

    //document.getElementById("xh").disabled="false";

    document.getElementById("xh").value="";

    document.getElementById("xm").value="";

    document.getElementById("xb").value="";

    document.getElementById("jg").value="";

    document.getElementById("ad").style.visibility="hidden";

    document.getElementById("qmd").style.visibility="hidden";

    alert("修改成功!");

    location.reload();

    }

    }else{

    alert("該學(xué)號還沒有被占用!請按學(xué)號查詢再進(jìn)行修改!");

    return false;

    }

    }

    }

    //新增學(xué)生

    function add(){

    var vadd = document.getElementById("add").value;

    if(vadd=="新增"){

    document.getElementById("xh").value="";

    document.getElementById("xm").value="";

    document.getElementById("xb").value="";

    document.getElementById("jg").value="";

    document.getElementById("qmd").style.visibility="hidden";

    document.getElementById('info').style.visibility='hidden';

    document.getElementById("s").value="顯示學(xué)生信息";

    document.getElementById("ad").style.visibility="visible";

    document.getElementById("add").value="保存";

    document.getElementById("can").style.visibility="visible";

    }else{

    if(info_check()){

    add_node();

    saveXML();

    document.getElementById("xh").value="";

    document.getElementById("xm").value="";

    document.getElementById("xb").value="";

    document.getElementById("jg").value="";

    document.getElementById("ad").style.visibility="hidden";

    document.getElementById("qmd").style.visibility="hidden";

    document.getElementById("add").value="新增";

    alert("新增成功!");

    location.reload();

    }

    }

    }

    //刪除學(xué)生

    function del(){

    var renum = /^\d{5}$/;

    if(renum.exec(document.getElementById("xh").value)){

    if(xmlDoc.selectSingleNode("/學(xué)生管理[學(xué)生/學(xué)號="+xh.value+"]")){

    if(confirm("確認(rèn)刪除?")){

    /*var node = xmlDoc.selectSingleNode("/學(xué)生管理[學(xué)生/學(xué)號="+xh.value+"]");

    if(node.hasChildNodes()){

    var kids = node.childNodes;

    for(var i=0;i<kids.length;i++){

    del();

    }

    }

    node.parentNode.removeChild(node);

    */

    var nod = getNod('學(xué)號',xh.value);

    nod.parentNode.removeChild(nod);

    saveXML();

    can();

    alert("刪除成功!");

    location.reload();

    }

    }else{

    alert("該學(xué)號還沒有被占用!請按學(xué)號查詢再進(jìn)行修改!");

    return false;

    }

    }else{

    alert("學(xué)號非法!為5位數(shù)字!");

    return false;

    }

    }

    //取消新增

    function can(){

    document.getElementById("xh").value="";

    document.getElementById("xm").value="";

    document.getElementById("xb").value="";

    document.getElementById("jg").value="";

    document.getElementById("ad").style.visibility="hidden";

    document.getElementById("can").style.visibility="hidden";

    document.getElementById("qmd").style.visibility="hidden";

    document.getElementById("add").value="新增";

    }

    //增加結(jié)點(diǎn)

    function add_node(){

    var oxh = xmlDoc.createElement("學(xué)號");

    oxh.appendChild(xmlDoc.createTextNode(xh.value));

    var oxm = xmlDoc.createElement("姓名");

    oxm.appendChild(xmlDoc.createTextNode(xm.value));

    var oxb = xmlDoc.createElement("性別");

    oxb.appendChild(xmlDoc.createTextNode(xb.value));

    var ojg = xmlDoc.createElement("籍貫");

    ojg.appendChild(xmlDoc.createTextNode(jg.value));

    var oxs = xmlDoc.createElement("學(xué)生");

    oxs.appendChild(oxh);

    oxs.appendChild(oxm);

    oxs.appendChild(oxb);

    oxs.appendChild(ojg);

    var parent = xmlDoc.selectSingleNode("/學(xué)生管理");

    if(parent.hasChildNodes()) {

    parent.insertBefore(oxs,parent.firstChild);

    }else{

    parent.appendChild(oxs);

    }

    }

    //保存XML

    function saveXML(){

    xmlDoc.save("stu.xml");

    }

    //驗(yàn)證新增數(shù)據(jù)

    function info_check(){

    var renum = /^\d{5}$/;

    var rec = /^[\u4E00-\u9FA5]{2,5}$/;

    if(!renum.exec(document.getElementById("xh").value)){

    alert("學(xué)號非法!為5位數(shù)字!");

    return false;

    }

    if(!rec.exec(xm.value)){

    alert("姓名非法!只能是中文最少兩個(gè)字,最多不得超過5個(gè)字!");

    return false;

    }

    //alert(xb.value!="男");

    switch(xb.value){

    case "男":break;

    case "女":break;

    default:alert("性別只能是\"男\(zhòng)"或\"女\"!"); return false;

    }

    if(!rec.exec(jg.value)){

    alert("籍貫非法!只能是中文最少兩個(gè)字,最多不得超過5個(gè)字!!");

    return false;

    }

    return true;

    }

    //-->

    </SCRIPT>

    <input id="s" type=button value="顯示學(xué)生信息" onclick="show();">

    <input id="que" type=button value="精確查詢" onclick="que();">

    <input id="add" type=button value="新增" onclick="add();">

    <input id="can" type=button value="取消" onclick="can();" style="visibility:hidden">

    <br>

    <center>

    <div id="ad" style="visibility:hidden">

    <table><tr><td>學(xué)號:

    <input type=text id="xh" style="ime-mode:disabled" size=5 maxlength=5 onKeyPress="if ((event.keyCode<48 || event.keyCode>57)) event.returnValue=false"><!-- style 用于光閉輸入法 onKeyPress 只能輸入數(shù)字-->

    </td><td>姓名:

    <input type=text id="xm" size=10 maxlength=5>

    </td><td>性別:

    <input type=text id="xb" size=5 maxlength=5>

    </td><td>籍貫:

    <input type=text id="jg" size=10 maxlength=5>

    </td>

    </tr>

    </table>

    </div>

    <div id="qmd" style="visibility:hidden">

    <table>

    <tr align="center">

    <td></td>

    <td><input id="que" type=button value="查詢" onclick="query();"></td>

    <td><input id="mod" type=button value="修改" onclick="mod();"></td>

    <td><input id="del" type=button value="刪除" onclick="del();"></td>

    </tr>

    </table>

    </div>

    </center>

    <div id="findPanel">

    <div id="findPanelTitle">可拖動</div>

    <div id="findPanelContent">

    <input type="text" size="20" value="a" id="key" onkeydown="javascript:ChckSubmit(event);">

    <input type="button" value="查找" onclick="javascript:OnKeySubmit();">

    </div>

    </div>

    <script language="javascript">

    <!--

    var findPanel = document.getElementById("findPanel");

    var findPanelTitle = document.getElementById("findPanelTitle");

    var findPanelContent = document.getElementById("findPanelContent");

    var findPanel_orgnX = 50;

    var findPanel_orgnY = 50;

    //設(shè)置物件位置

    findPanel.style.pixelLeft = document.body.scrollLeft + findPanel_orgnX;

    findPanel.style.pixelTop = document.body.scrollTop + findPanel_orgnY;

    //================================================================================

    var foundCnt = 0; //已經(jīng)找到了的結(jié)果的數(shù)量

    //查找入口函數(shù)

    function Find(key)

    {

    if (key == "")

    {

    return;

    }

    if (document.all)

    {

    IEFind(key);

    }

    else

    {

    NSFind(key);

    }

    }

    //瀏覽器為 IE 系列

    function IEFind(key)

    {

    var rng = document.body.createTextRange();

    var found = false;

    for (var i=0; i<=foundCnt && (found=rng.findText(key)); i++)

    {

    rng.moveStart("character", 1); //找到,后移一位以查找下一個(gè)

    }

    if (found)

    {

    rng.moveStart("character", -1);

    rng.findText(key);

    rng.select();

    rng.scrollIntoView();

    foundCnt++;

    }

    else

    {

    if (foundCnt > 0)

    {

    //已經(jīng)查找一遍,找到有符合條件的結(jié)果,重新開始查找

    foundCnt = 0;

    IEFind(key);

    }

    else

    {

    //已經(jīng)查找一遍,沒有找到符合條件的結(jié)果

    alert("文檔搜索完畢。");

    }

    }

    }

    //瀏覽器為 NS 系列

    function NSFind(key)

    {

    if (window.find(key))

    {

    foundCnt++;

    }

    else

    {

    var found = false;

    while (window.find(key, false, true))

    {

    found = true;

    }

    if (found)

    {

    //已經(jīng)查找一遍,找到有符合條件的結(jié)果,重新查找也已經(jīng)開始

    foundCnt = 1;

    }

    else

    {

    //已經(jīng)查找一遍,沒有找到符合條件的結(jié)果

    alert("文檔搜索完畢。");

    }

    }

    }

    function OnKeySubmit()

    {

    var key = document.getElementById("key");

    Find(key.value);

    }

    function ChckSubmit(e)

    {

    if (e.keyCode == 13)

    {

    OnKeySubmit();

    }

    }

    //================================================================================

    function RePosFindPanel()

    {

    findPanel.style.pixelLeft = document.body.scrollLeft + findPanel_orgnX;

    findPanel.style.pixelTop = document.body.scrollTop + findPanel_orgnY;

    }

    document.body.onscroll = RePosFindPanel;

    document.body.onresize = RePosFindPanel;

    //================================================================================

    //拖拽過程中相關(guān)變量

    var draging = false; //是否處于拖拽中

    var offsetX = 0; //X方向左右偏移量

    var offsetY = 0; //Y方向上下偏移量

    //準(zhǔn)備拖拽

    function BeforeDrag()

    {

    if (event.button != 1)

    {

    return;

    }

    offsetX = document.body.scrollLeft + event.clientX-findPanel.style.pixelLeft;

    offsetY = document.body.scrollTop + event.clientY-findPanel.style.pixelTop;

    draging = true;

    }

    //拖拽中

    function OnDrag()

    {

    if(!draging)

    {

    return;

    }

    //更新位置

    findPanel_orgnX = event.clientX-offsetX;

    findPanel_orgnY = event.clientY-offsetY;

    event.returnValue = false;

    findPanel.style.pixelLeft = document.body.scrollLeft + event.clientX-offsetX;

    findPanel.style.pixelTop = document.body.scrollTop + event.clientY-offsetY;

    }

    //結(jié)束拖拽

    function EndDrag()

    {

    if (event.button != 1)

    {

    return;

    }

    draging = false;

    }

    findPanelTitle.onmousedown = BeforeDrag;

    document.onmousemove = OnDrag;

    findPanelTitle.onmouseup = EndDrag;

    //-->

    </script>

    <xml id="stu" src="stu.xml">

    </xml>

    <center>

    <div id="info" style="visibility:hidden">

    <table DATASRC=#stu border=1 style="background-color:#a9eeef; Border-color

    :red;" >

    <caption><h2>學(xué)生信息管理</h2></caption>

    <thead> 

    <th>學(xué)號</th>

    <th>姓名</th>  

    <th>性別</th>  

    <th>籍貫</th> 

    </thead> 

    <tr> 

    <td>  

    <div DATAFLD="學(xué)號">  

    </td>  

    <td>  

    <div DATAFLD="姓名">

    </td>  

    <td>  

    <div DATAFLD="性別">  

    </td>  

    <td>  

    <div DATAFLD="籍貫"> 

    </td> 

    </tr> 

    </table>

    </div>

    </center>

    </body>

    </html>

    xml文件如下(stu.xml)

    代碼如下:

    <?xml version="1.0" encoding="gb2312"?>

    <學(xué)生管理>

    <學(xué)生>

     <學(xué)號>97001</學(xué)號>

     <姓名>王五</姓名>

     <性別>男 </性別>

     <籍貫>上海</籍貫>

    </學(xué)生>

    <學(xué)生>

     <學(xué)號>97002</學(xué)號>

     <姓名>李四 </姓名>

     <性別>男 </性別>

     <籍貫>浙江 </籍貫>

    </學(xué)生>

    <學(xué)生>

      <學(xué)號>97006 </學(xué)號>

      <姓名>張三 </姓名>

      <性別>男</性別>

      <籍貫>浙江</籍貫>

    </學(xué)生>

    </學(xué)生管理>

    更多信息請查看IT技術(shù)專欄

    更多信息請查看腳本欄目
    易賢網(wǎng)手機(jī)網(wǎng)站地址:javascript操作xml(增刪改查)例子代碼hta版
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2025國考·省考課程試聽報(bào)名

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)