使用JQuery解析XML属性

时间:2015-04-25 02:06:33

标签: jquery xml

我一直在尝试解析来自Web服务的XML响应。这是它返回的一个例子。

        $title = $xml.find("Target").attr("TotalScore");

这有效,但我想获取属性的值。我尝试添加:

^http(s)?://(www\.)?facebook.([a-z]+)/(?!(?:video\.php\?v=\d+|usernameFB/videos/\d+)).*$

但我什么都没得到。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您正在尝试获取元素的值,而不是在执行.attr()时已添加到var的属性值;

试试这个:

<script>
var xml = "<?xml version='1.0' encoding='utf-8'?><campaign guid='799223B1-24A7-4F01-8DAE-632E6F68F845'><LeaderBoard><Target Rank='1' TotalScore='138000' FirstName='Shane' LastName='Foster' TargetCompanyName='[Acme]' DisplayName=''>Hello World</Target></LeaderBoard></campaign>",
    xmlDoc = $.parseXML(xml),
    $xml = $(xmlDoc),
    $title = $xml.find("Target").attr("TotalScore");
    alert($title);
</script>

答案 1 :(得分:0)

首先尝试这种方法,你需要使用ajax将xml文件的路径抛到webservice,然后让webservice在后端获取你的数据

     /// convert xml data to datatable
    DataSet ds = new DataSet();

     /// your xml file path
    ds.ReadXml(Server.MapPath("~/") + "XMLData\\here.xml");

    DataTable dt = ds.Tables[0];


    /// new datatable to store value of xml datas
    DataTable newDt = new System.Data.DataTable();
    newDt.Columns.Add("Title");
    newDt.Columns.Add("Author");


    if (dt.Rows.Count > 0)
    {

        foreach (DataRow row in dt.Rows)
        {
            string Title = "";
            string author = "";

            if (row["Title"] != null && row["Title"].ToString() != "")
            {
                Title = row["Title"].ToString();

            }
            if (row["Author"] != null && row["Author"].ToString() != "")
            {
                author = row["Author"].ToString();
            }

            newDt.Rows.Add(Title, author);

        }



    }