XML文件源码察看器(二)

博客展示了JS版XML源码察看器的源代码。包含HTML结构和JScript脚本,通过`parseXML`函数加载并解析用户选择的XML文件,若文件无效给出提示,还定义了`renderChildNodes`函数递归遍历子节点并添加高亮标记。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二、JS版源代码

==================================================

<!--


刘海龙,stan


[email]xiaoleilong@mail.biti.edu.cn[/email]


2003-5-9整理


-->


<HTML>


<HEAD>


<TITLE>XML Src Viewer</TITLE>


<STYLE TYPE="text/css">


    BODY {font-family:Tahoma,Arial,sans-serif; font-size:10pt}


    .heading {font-family:Tahoma,Arial,sans-serif; font-size:14pt; font-weight:bold}


    .cite {font-family:Tahoma,Arial,sans-serif; font-size:8pt}


</STYLE>


</HEAD>


<BODY BGCOLOR="#FFFFFF" onload="parseXML()">


<SPAN CLASS="heading">XML 源码察看器 </SPAN><br>


<form name="form1" enctype="multipart/form-data" method="post" action="">


<input name="file" type="file" onChange="parseXML()" value="test.xml">


</form>


<HR>


<!--------------------------------------------------------------------------->


<SPAN ID="txtData"></SPAN>


<SCRIPT LANGUAGE="JScript">





function parseXML()


{


    var domXMLData=new ActiveXObject("MSXML2.FreeThreadedDOMDocument");


    var strFilePath;


    strFilePath = document.form1.file.value;


    if(strFilePath=="")


        txtData.innerHTML='<p><font color=/"red/"><b>请浏览选择需要察看的xml文件. :)</b></font> </p>' ;


    else


    {


            domXMLData.load(strFilePath);


            if (domXMLData.parseError.errorCode != 0)


            {


                txtData.innerHTML='<p><font color=/"red/"><b>Invalid XML file:</b></font> ' + domXMLData.parseError.reason+"</p>";


                return;


            }


            //递归遍历不同类型子节点,加上高亮标记 <font color=#> </font>


            txtData.innerHTML = renderChildNodes(domXMLData, 0);


    }


}





var g_strNodeTypes = new Array('', 'ELEMENT (1)', 'ATTRIBUTE (2)','TEXT (3)', 'CDATA SECTION (4)', 'ENTITY REFERENCE (5)','ENTITY (6)', 'PROCESSING INSTRUCTION (7)', 'COMMENT (8)','DOCUMENT (9)', 'DOCUMENT TYPE (10)', 'DOCUMENT FRAGMENT (11)','NOTATION (12)');





//函数名:renderChildNodes


//参数:nodNode -- xml 节点


// intLevel -- 层数,用于缩进


function renderChildNodes(nodNode, intLevel)


{


    var strNodes = ''; //用于显示的 html 字符串,处理的结果


    var intCount = 0; //循环遍历用的临时变量


    var intNode = 0; //循环遍历用的临时变量


    var nodAttrList; //属性集




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值