这篇文章主要介绍了射流研究…操作可扩展标记语言的方法,结合实例形式总结分析了Java脚本语言加载与解析可扩展标记语言文件及字符串的相关技巧,需要的朋友可以参考下
本文实例讲述了射流研究…操作可扩展标记语言的方法。分享给大家供大家参考,具体如下:
我的可扩展标记语言文件Login.xml如下。
?可扩展标记语言版本='1.0 '编码='utf-8 '?
注册
性格;角色;字母
C Text='热血值="0"/C
C Text='弱气Value='1'/C
C Text='激情Value='2'/C
C Text='冷静值='3'/C
C Text='冷酷Value='4'/C
/字符
武器
W Text='光束剑值='0'/W
W Text='光束配刀值='1'/W
/武器
经济财产
P Text='平均型值="0"/P
P Text='重视攻击Value='1'/P
P Text='重视敏捷Value='2'/P
P Text='重视防御Value='3'/P
P Text='重视命中Value='4'/P
/经济属性
/登录
现在我需要对这个可扩展标记语言文件的内容进行操作。
首先,我们需要加载这个可扩展标记语言文件,js中加载可扩展标记语言文件,是通过XMLDOM来进行的。
//加载可扩展标记语言文档
loadXML=function(xmlFile)
{
var xmlDoc
如果(窗口. ActiveXObject)
{
XML doc=新建ActiveX对象(' Microsoft .XML DOM’);
xmlDoc.async=false
XML文档。加载(XML文件);
}
else if(文档。实施文件。实施。创建文档)
{
XML doc=文档。实施。创建文档('','',null);
XML文档。加载(XML文件);
}
其他
{
返回空
}
返回xmlDoc
}
可扩展标记语言文件对象出来了,接下去我就要对这个文档进行操作了。
比如说,我们现在需要得到节点登录/武器/W的第一个节点的属性,那么我们可以如下进行。
//首先对可扩展标记语言对象进行判断
checkXMLDocObj=函数(xmlFile)
{
var XML doc=load XML(XML文件);
if(xmlDoc==null)
{
警报('您的浏览器不支持可扩展标记语言文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
窗户。位置。href='/index。aspx ';
}
返回xmlDoc
}
//然后开始获取需要的登录/武器/W的第一个节点的属性值
var XML doc=checkXMLDocObj('/EBS/XML/log in。XML’);
var v=XML doc。getelementsbytagname(' log in/Weapon/W ')[0]。子节点。获取属性(“文本”)
而我在我的程序中的写法是这样子的,当然我在程序中的写法是已经应用到实际中的了。一并给出来,以供查看
initializeSelect=function(oid,xPath)
{
var XML doc=checkXMLDocObj('/EBS/XML/log in。XML’);
var n;
var l;
var e=$(oid);
如果(e!=空)
{
n=XML文档。getelementsbytagname(xPath)[0].子节点;
l=n。长度;
for(var I=0;il;我)
{
var选项=文档。createelement(' option ');
option.value=n[i].get属性(" Value ");
option.innerHTML=n[i].get属性(" Text ");
阑尾切除术(选项);
}
}
}
上面的访问代码中,我们是通过XML文档。getelementsbytagname(xPath)来进行的。
还可以通过XML文档。文档元素。子节点(1).子节点(0).getAttribute('Text ')进行访问。
一些常用方法:
XML文档。文档元素。子节点(0).节点名,可以得到这个节点的名称。
XML文档。文档元素。子节点(0).节点值,可以得到这个节点的值。这个值是来自于这样子的可扩展标记语言格式:ab/b,于是可以得到b这个值。
XML文档。文档元素。子节点(0).hasChild,可以判断是否有子节点
根据我的经验,最好是使用getElementsByTagName(xPath)的方法对节点进行访问,因为这样子可以直接通过xPath来定位节点,这样子会有更好的性能。
补充:
JS解析XML文件
脚本类型='文本/javascript '
loadXML=function(xmlFile){
var xmlDoc=null
//判断浏览器的类型
//支持工业管理学(工业工程)浏览器
如果(!窗户. DOMParser窗口ActiveXObject){
var xmlDomVersions=[' MSXML。2 .DOM文档。' 6.0 ',' MSXML.2.DOMDocument.3.0 ','微软. XML DOM '];
for(var I=0;ixmlDomVersions.lengthi ){
尝试{
XML doc=新的ActiveX对象(xmlDomVersions[I]);
打破;
}catch(e){
}
}
}
//支持浏览器名浏览器
else if(文档。实施文件。实施。创建文档){
尝试{
/*文档。实施。创建文档('','',null);方法的三个参数说明
* 第一个参数是包含文档所使用的命名空间上呼吸道感染的字符串;
* 第二个参数是包含文档根元素名称的字符串;
* 第三个参数是要创建的文档类型(也称为doctype)
*/
XML doc=文档。实施。创建文档('','',null);
}catch(e){
}
}
否则{
返回空
}
if(xmlDoc!=null){
xmlDoc.async=false
XML文档。加载(XML文件);
}
返回xmlDoc
}
/脚本
JS解析XML字符串
脚本类型='文本/javascript '
loadXML=function(xmlString){
var xmlDoc=null
//判断浏览器的类型
//支持工业管理学(工业工程)浏览器
如果(!窗户. DOMParser窗口ActiveXObject){ //window .DOMParser判断是否是非爱尔兰共和国浏览器
var xmlDomVersions=[' MSXML。2 .DOM文档。' 6.0 ',' MSXML.2.DOMDocument.3.0 ','微软. XML DOM '];
for(var I=0;ixmlDomVersions.lengthi ){
尝试{
XML doc=新的ActiveX对象(XML DOM versions[I]);
xmlDoc.async=false
XML文档。加载XML(XML字符串);//loadXML方法载入可扩展标记语言字符串
打破;
}catch(e){
}
}
}
//支持浏览器名浏览器
else if(窗口DOM解析器文档。实施文件。实施。创建文档){
尝试{
/* DOMParser对象解析可扩展标记语言文本并返回一个可扩展标记语言文档对象。
* 要使用DOMParser,使用不带参数的构造函数来实例化它,然后调用其parseFromString()方法
* parseFromString(文本,内容类型)参数文本:要解析的可扩展标记语言标记参数内容类型文本的内容类型
* 可能是"文本/xml "、"应用程序/xml "或'应用程序/xhtml xml '中的一个。注意,不支持文本/html。
*/
DOM parser=new DOM parser();
XML doc=DOM解析器。parsefromstring(XML字符串,' text/XML ');
}catch(e){
}
}
否则{
返回空
}
返回xmlDoc
}
/脚本
测试XML
?可扩展标记语言版本='1.0 '编码='utf-8 '?
东方
公司
cNname1/cNname
cIP1/cIP
/公司
公司
cNname2/cNname
cIP2/cIP
/公司
公司
cNname3/cNname
cIP3/cIP
/公司
公司
cNname4/cNname
cIP4/cIP
/公司
公司
cNname5/cNname
cIP5/cIP
/公司
公司
cNname6/cNname
cIP6/cIP
/公司
/东方
使用方法:
var xmldoc=loadXML(text.xml)
var elements=XML doc。getelementsbytagname(“公司”);
for(var I=0;我。元素.长度;i ) {
var name=elements[i].getElementsByTagName(' cn name ')[0]。第一个孩子。nodevalue
var ip=elements[i].getElementsByTagName(' cIP ')[0]。第一个孩子。nodevalue
}
希望本文所述对大家Java脚本语言程序设计有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。