如何在JQuery中读取webservice返回的XML数据

如何在JQuery中读取webservice返回的XML数据,jquery,xml,ajax,web-services,Jquery,Xml,Ajax,Web Services,ASMX: JQUERY: public class ItemRecord { public string model { get;set; } public string verzia { get;set; } public string typ { get;set; } public string motor { get;set; } } [WebMethod] public ItemR

ASMX:

JQUERY:

    public class ItemRecord
    {
        public string model { get;set; }
        public string verzia { get;set; }
        public string typ { get;set; }
        public string motor { get;set; }
    }

    [WebMethod]
    public ItemRecord GetRecord(int id)
    {
        ItemRecord record = new ItemRecord();

        using (SqlConnection sConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["bazarovkyConnectionString"].ToString()))
        {
            sConnection.Open();


            SqlCommand sCommand = sConnection.CreateCommand();
            sCommand.CommandText = "select id_model, motor from data_motorizacia where id=@id";
            sCommand.Parameters.AddWithValue("@id", id);

            SqlDataReader sReader = sCommand.ExecuteReader();
            if (sReader.Read())
            {
                record.model = sReader["id_model"].ToString();
                record.motor = sReader["motor"].ToString();
            }
        }

        return record;

    }
我想做的是在ajaxFinish中读取马达和id_模型的值。但它要么返回对象(若我只引用XML),要么未指定或为空


如何跟踪/调试从.ASMX文件返回的内容

您可以尝试使用而不是xml

我没有复制粘贴您的代码,所以它有点不同,但您会明白

id = $("#view_id", row).text();

$.ajax({
    type: "POST",
    url: "/data.asmx/GetRecord",
    data: "{'id':'" + id + "'}",
    contentType: "application/json; charset=utf-8",
    dataType: "xml",
    processData: false,
    error: function (XMLHttpRequest, textStatus, errorThrown) { ajaxError(XMLHttpRequest, textStatus, errorThrown); },
    success: function (xml) { ajaxFinish(xml); }
});

function ajaxFinish(xml) {
    // parse the object
    alert($(xml).find("motor").text());

}

这里,arr是一个数组,其中读取值并使用loopCounter将数据存储在数组arr中,xmlNode是xml中的节点名称(您在响应中获得的名称)w您希望获取的值,但我希望返回值,而不是在.ASMX文件中生成整个HTML代码。您不需要在ASMX中生成整个HTML代码。只需从webservice返回json而不是xml。“xmlNode”是一个特殊的标记吗?或者我把节点名放在那里?你把节点名放在那里:)
  var arr= new Array();
  var loopCounter = 0;

$.ajax({
            type: "POST",
            url: "yourURL",
            dataType: "xml",
            success: function(xml) {
                $(xml).find('xmlNode').each(function() {
                    arr[loopCounter] = $(this).find('xmlNode').text();
                    loopCounter += 1;
                });