当前位置: 代码迷 >> Web Service >> 怎么给Webservice返回的xml元素加上属性
  详细解决方案

怎么给Webservice返回的xml元素加上属性

热度:197   发布时间:2016-05-02 02:19:26.0
如何给Webservice返回的xml元素加上属性
访问Webservice时,我直接返回的对象.没有设置返回值类型,自动被转换为xml格式.不知道是不是内置的就是xml格式;
我现在想给又对象自动转换来的xml元素设置属性;请教各路高人应该怎么做?
[Serializable]
public  class ErrorMsg
    {
        
        public ErrorMsg()
        {
            this.ErrNo = 0;
            this.errMsg = "";
        }
        public ErrorMsg(int ErrNo, string errMsg)
        {
            this.ErrNo = ErrNo;
            this.errMsg = errMsg;
        }
        private int errNo;
            /// <summary>
            /// 0 正常,1 业务逻辑错误,3程序错误
            /// </summary>
        public int ErrNo
        {
            get { return errNo; }
            set { errNo = value; }
        }
        private string errMsg;

        public string Errmsg
        {
            get { return errMsg; }
            set { errMsg = value; }
        }
        

    }

上面是返回的对象;我在方法中return ErrorMsg 后,自动转成xml.如下:
<ErrorMsg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.wxsky.cc/">
<ErrNo>1</ErrNo>
<Errmsg>非法的手机号,请输入11位数字</Errmsg>
</ErrorMsg>

我现在想给返回的xml元素加属性,比如
<ErrNo name="错误码">1</ErrNo>
应该怎么做?
------解决方案--------------------
这与WS返回什么都没有关系了。只是返回后,你程序里对XML的操作。



------解决方案--------------------
using System; 
using System.Collections; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Web; 
using System.Web.SessionState; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.HtmlControls; 
using System.Xml; 

private XmlDocument xmlDoc; 
//load xml file 
private void LoadXml() 

xmlDoc=new XmlDocument(); 
xmlDoc.Load(Server.MapPath("User.xml"));
}
 //添加节点 
private void AddElement() 

LoadXml(); 
XmlNode xmldocSelect=xmlDoc.SelectSingleNode("user"); 
XmlElement el=xmlDoc.CreateElement("person"); 
//添加person节点 
el.SetAttribute("name","风云"); 
//添加person节点的属性"name" 
el.SetAttribute("sex","女"); 
//添加person节点的属性 "sex" 
el.SetAttribute("age","25"); 
//添加person节点的属性 "age" 
XmlElement xesub1=xmlDoc.CreateElement("pass"); 
//添加person节点的里的节点 
xesub1.InnerText="123";
//设置文本节点 
el.AppendChild(xesub1); 
XmlElement xesub2=xmlDoc.CreateElement("Address"); 
xesub2.InnerText="昆明";
//设置文本节点 
el.AppendChild(xesub2); xmldocSelect.AppendChild(el); xmlDoc.Save(Server.MapPath("user.xml")); 
}
 //修改节点 
private void UpdateElement() 

LoadXml(); 
XmlNodeList nodeList=xmlDoc.SelectSingleNode("user").ChildNodes;
//获取bookstore节点的所有子节点 
foreach(XmlNode xn in nodeList)
//遍历所有子节点 

XmlElement xe=(XmlElement)xn;
//将子节点类型转换为XmlElement类型 
if(xe.GetAttribute("name")=="风云")
//如果name属性值为“风云” 

xe.SetAttribute("name","发明"); 
//如果下面有子节点在下走 
XmlNodeList nls=xe.ChildNodes;
//继续获取xe子节点的所有子节点 
foreach(XmlNode xn1 in nls)
//遍历 

XmlElement xe2=(XmlElement)xn1;
//转换类型 
if(xe2.Name=="pass")
//如果找到 

xe2.InnerText="66666";
//则修改 
break; 


break; 


xmlDoc.Save(Server.MapPath("user.xml"));
//保存 

//删出节点 
private void deleteNode() 

LoadXml(); 
XmlNodeList xnl=xmlDoc.SelectSingleNode("user").ChildNodes; 
  相关解决方案