jquery xml解析不起作用
我想解析xml,但它没有返回任何东西jquery xml解析不起作用
这里是下面的代码jquery和xml代码。有什么我做错了吗?
<script language="javascript">
/* $(document).ready(function()
{
$.ajax({
type: "GET",
url: "view_xml.xml",
dataType: "xml",
success: function(xml) { parseXml(xml); }
});
});
*/
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "view_xml.xml",
dataType: "xml",
complete: function(data,status) { parseXml(data.responseXML); }
});
});
function parseXml(xml)
{
$(xml).find("inst:cView").each(function()
{
$("#output").append($(this).attr("type") + "<br />");
/* output
Disks
Disks
*/
});
$(xml).find("inst:field").each(function()
{
$("#output").append($(this).attr("name") + "-");
$("#output").append(": " + $(this).find("name").text() + "<br />");
/* output
TargetObjectClass -:Disk
TargetObjectName -:DISK A1
DisplayName -:DISK-Name
MaxAvgDataRate KB/sec -:50.00 KB/sec
MaxAvgQueueDepth -:50.00
...
...
*/
});
}
</script>
XML代码
<?xml version="1.0" encoding="utf-8"?>
<entry>
----
----
<cView type="D1">
<field name="TargetObjectClass">Disk</field>
<field name="TargetObjectName">DISK A1</field>
<field name="DisplayName">DISK-Name</field>
<field name="MaxAvgDataRate KB/sec">50.00 KB/sec</field>
<field name="MaxAvgQueueDepth">50.00</field>
</cView>
<cView type="D2">
<field name="TargetObjectClass">Disk</field>
<field name="TargetObjectName">DISK B2</field>
<field name="DisplayName"> Disk-Name 2 </field>
<field name="MaxAvgDataRate KB/sec">60.00 KB/sec</field>
<field name="MaxAvgQueueDepth">60.00</field>
</cView>
...
</entry>
尝试以下
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "view_xml.xml",
dataType: "xml",
complete: function(data,status) { parseXml(data.responseText); }
});
});
编辑关于你的XML标签:
Using data.responseText
And <cView type="..."> instead of <inst:Cview type="..."> works like a charm.
The same for <field ...> instead <inst:field ...>.
由于 “:” 使选择一些搜索“伪元素”而不是标签。
所以,最后,你只需要逃跑 ':',这样的:
$(xml).find("inst\\:cView")...
$(xml).find("inst\\:field")...
有关新的XML编辑
要获取数据的树状结构,使用下列内容:
function parseXml(xml)
{
$(xml).find("cView").each(function()
{
$("#output").append($(this).attr("type") + "<br/>");
$(xml).find("field").each(function()
{
$("#output").append($(this).attr("name") + " : ");
$("#output").append($(this).text() + "<br/>");
});
$("#output").append("<hr/>");
});
}
每个“字段”的内容是$(this).text();
我试过它没有工作要么 – user244394 2012-02-19 00:57:42
我认为我发现了这个问题,请检查我的答案,如果它是正确的:-) – Valky 2012-02-19 03:05:15
嘿,那工作谢谢 – user244394 2012-02-20 02:56:53
不知道,但你有没有尝试过使用'xml'而不是'$(xml)'? – Valky 2012-02-18 18:39:26
试过,没有输出任何东西 – user244394 2012-02-18 18:43:16
是的,它是有效的xml我把它留在这里 – user244394 2012-02-18 19:04:26