$.ajax({
url : rootPath + "/xml.php?act=read",
dataType : "json",
success : function(response) {
if (response) {
alert("保存成功")
}
else
alert("保存失败" )
}
}
})
xml文件\内容读取
1、读取xml文件
$.get("xmlfile.xml",function(xml){
//xml即为可以读取使用的内容,具体读取见第2点
})
2、读取xml内容
如果读取的xml是来于xml文件,这结合上面的那点,处理如下
$.get("xmlfile.xml",function(xml){
$(xml).find("item").length
})
如果读取的是xml字符串,则要注意一点,xml字符串的必然被”<xml>”和”</xml>”包围才可以被解析
$("<xml><root><item></item></root></xml>").find("item").length 二、解析xml内容示例xml:<?xml version="1.0" encoding="utf-8" ?><fields>
<field Name="Name1">
<fieldname>dsname</fieldname>
<datatype>字符</datatype>
</field>
<field Name="Name2">
<fieldname>dstype</fieldname>
<datatype>字符</datatype>
</field></fields>以下是解析示例代码$(xml).find("field").each(function() {
var field = $(this)
var fName = field.attr("Name")//读取节点属性
var dataType = field.find("datatype").text()//读取子节点的值
})
另外说明一点js是没有权限去直接 *** 作本地或者服务器的xml文件的,要通过 ActiveX来实现,这个涉及到浏览器安全的。
JavaScript *** 作 XML 需要使用 XML DOM,它和 HTML DOM 很相似。
为什么 innerHTML 等 HTML DOM 属性、方法不能 *** 作 XML?原因很简单,就像 HTML 是 XML 的特殊实例一样,HTML DOM 也是专门优化过的,有的 *** 作只能专用于 HTML。
而 XML DOM 则对于任何 XML 及其子集语言编写的文件都通用,因此它的 *** 作更加原始,步骤也比较复杂。下面举一个例子说明。
假设需要处理的 XML 文件是“example.xml”。
<?xml version="1.0" encoding="UTF-8"?><school id="s0">
<grade id="g0" number="1">
<!--在这里插入子节点-->
</grade>
<grade id="g1" number="2"></grade>
<grade id="g2" number="3"></grade>
</school>
现在为“<grade id="g0" number="1"></grade>”节点插入一个子节点“<class>Class 101</class>”。注意在 XML 中,“Class 101”这样的单纯文字内容也被视为节点,即文本节点。
下面是 JavaScript 代码(宿主环境为浏览器,因此需要把代码放在一个 HTML 文件中执行)。
//加载 XML 文档的函数(这个函数的具体实现可以忽略)function loadXMLDoc(xmlFile){
var xmlDoc
try{
//Internet Explorer 可以使用其原生方法加载 XML
xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
}catch(e){
try{
//Firefox 也有标准方法,但可能造成其他浏览器报错,故省略
//使用 XMLHttpRequest 替代,适用于大部分浏览器
var xmlHttp = new XMLHttpRequest()
xmlHttp.open("GET",xmlFile,false)
xmlHttp.send(null)
return xmlHttp.responseXML
}catch(e){
return null
}
}
xmlDoc.async=false
xmlDoc.load(xmlFile)
return xmlDoc
}
var xml=loadXMLDoc("example.xml") //加载XML文件
var elemC0=xml.createElement("class") //创建一个元素节点
var text0=xml.createTextNode("Class 101") //创建一个文本节点
elemC0.appendChild(text0) //添加文本节点
var elemG0=xml.getElementsByTagName("grade")[0] //获取需插入的父节点
elemG0.appendChild(elemC0) //添加为子节点
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)