前端解析xml文件(前端解析xml文件格式)

http://www.itjxue.com  2023-01-28 04:08  来源:未知  点击次数: 

javascript解析xml文件出错

首先你要确定是否加载到资源了,你可以alert(xmlDoc.xml)试一下,

还有一个

var

v

=

xmlDoc.getElementsByTagName('Login/Weapon/W')[0].childNodes.getAttribute('Text');

你这句话是错的,

getElementByTagName是根据标签的名称获取到标签的,

而你写的的是(Login/Weapon/W)

这个是标签的完整路径

你应该这么些xmlDoc.selectSingleNode("Login/Weapon/W")

script

type="text/javascript"

var

xmlDoc

=

new

ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async

=

false;

xmlDoc.load("login.xml");

var

v

=

xmlDoc.selectSingleNode("Login/Weapon/W/@Text").;

document.writeln(v);

/script

这个是那段javascript代码,这段代码是没有错的,我在load其他的xml文件的时候都是没有错的,但是load

login.xml的时候就是加载不出来,你看看你的xml文件有没有错误

js 如何读取xml文档内容

先判断浏览器,然后读取xml数据就可以了

//判断不同的浏览器

function InitMf()

{

var mf_change=false;

try {

mf_change = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

mf_change = new ActiveXObject("Microsoft.XMLHTTP");

} catch (E) {

mf_change = false;

}

}

if (!mf_change typeof XMLHttpRequest!='undefined') {

mf_change = new XMLHttpRequest();

}

return mf_change;

}

读取数据

var xmlHttp = InitMf();

var HTML = "";

//获得xml文件

xmlHttp.open("GET", xmlfile+"?"+Math.random(), true);

// 设置处理服务器的JS函数,函数又 xmlHttp.onreadystatechange来确定

xmlHttp.onreadystatechange=function() {

//alert(xmlHttp.status);

if (xmlHttp.readyState==4 xmlHttp.status==200) {

//ajax的XML传输的解析。获取解析的数据

var xml = xmlHttp.responseXML;

var node = xml.getElementsByTagName("item");//获得总结点

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

var str_t = "";

var str_d = "";

var menuHTML = "";

var elem = node[i];

//下面开始获得子节点数据,当然可以继续循环,获得更下面的节点

var title = elem.getElementsByTagName("title")[0].textContent != undefined ? elem.getElementsByTagName("title")[0].textContent : elem.getElementsByTagName("title")[0].text;

这些只是部分代码,不过已经足够了

js如何解析xml字符串

var xmlStr = 'rootpeoplename张三/nameaddress北京/address/people/root';

var result = null;

eval('result=['+$(xmlStr).find('people').map(function(){

return '{'+$('*',this).map(function(){

return $(this).attr('tagName') + ':"' + $(this).text() + '"';

}).get().join(',') + '}';

}).get().join('],[')+']');

alert(result);

//result是一个数组,如果有多个people节点,则为:[{name:"张三",address="北京"},{name:"李四",address="上海"}]

不好意思偏题了,以下是你要的结果:

var result = $(xmlStr).find('people').children().map(function(){

return $(this).attr('tagName')+'='+$(this).text();

}).get().join();

上面的都是jquery的写法:

javascript的话:

用COM操作:

object xmlDoc = new ActiveObject('msxml2');

xmlDoc.loadXml(xmlStr);

var pNode = xmlDoc.selectSignNode('people');

var result = '';

for(var node in pNode.selectNodes('*')){

result+=(result.length0?',':'') + node.nodeName+'='+node.innerText;

}

alert(reuslt);

或者用DOM操作:

xml id='testXml' /

var result = '';

with(document.getElementById('testXml')){

innerHTML = xmlStr;

for(var child in children){

result += ',' + child.tagName + '=' + child.innerText;

}

if(result.length 0){

result = result.substring(1);

}

}

怎么通过js跨域获取xml文件并解析到html上呢?我要弄一个简单天气预报的页面,主要是怎么去获取。

既然是个API,按理它本身应该提供跨域解决方案的,否则它就是个不完善的API。如果确实要自己解决,我个人认为只有通过代理页面转发才是最好的方法,就是说自己要有可控制的服务器( 虚拟主机也可),然后用php、asp或jsp做一个程序文件,你的js把ajax请求发送到这个文件中,这个文件再通过你说的api把请求发送到目标服务器(服务器间的通讯是不存在跨域问题的),获取到xml数据后再转发给你的js,也就是说你只需要跟你自己的服务器联系即可,剩下的事由它去完成。

Java解析XML 的问题

我来和楼主一起分析一下这个问题吧。

首先,从基本要求可以得知:1、用JAVA编写(是我多余了- -)。2、这是一个JAVA WEB程序。3、要求提供的前端应用可以是页面或客户端。

由以上总结:要求你用JAVA写一个Web Service程序,并提供一个前端程序(简称前台)。接下来第二步的功能要求就明了了。后台的Web service程序(简称后台)的作用就是解析上面的那个XML文件,并跟据解析的结果进行对应的操作,这里的业务操作只要求成生SQL语句并显示就可以了。题目中帮你解释了XML的含义,由以上可知到,要从XML中解析的数据包括:1、表名。2、操作,用Operation值表示分为(0-insert:1-update:2-delete)。3、操作类型,注意这个state是针对字段的,不像operation是针对表的,跟据题目得知,state 有 0 和 5两个值。当值为5时,这个字段应该做为本次操作的条件。题目中将示例XML的含义完整的解释了,并给出了表结构。

接下来就分析一下解决步骤吧,这里不能画图。只好用文字了- -

1、从前台提交一个以上格式的XML数据。

2、后台接收并解释XML数据

3、前台显示解释后生成的SQL

其中第二步细化为:

2.1、解析Table节点,可以得知表名和操作类型。以示例来看,第一个Table节点解析后可以得到:INSERT INTO PERSON 的Sql语句。

2.2、接下来解析Table下的了节点,也就是各字段节点。可以得到:ID=00003和NAME=刘军 这两个信息。因为两个字段的state属性都是0,所以可以生成以下SQL语句:INSERT INTO PERSON (ID,NAME)VALUES("00003","刘军")

2.3、返回结果

大体上就是这样了。另外两个Table节点和示例中第一个节点不同的地方就是操作和State的值。operation不同生成的语句结构就不同。比如第二个语句应该生成:UPDATE 表名 SET 字段=值 这样的结构。state属性就更好处理了。如果发现它的值是5就直接组合一个Where子句放成后面就可以了。

(责任编辑:IT教学网)

更多

推荐Flash动画制作教程文章