我要获取此段XML数据,我要获得prodid=8080 orderid=113344 tranid="" resultno=1011 ="" verifystring=3998c6dce7e1f08bcebbe664c7030c03
用C#代码如何写,如何用xml来处理.
小弟才疏学浅,望各位大哥多多指点,小弟我感激不尽.<?xml version="1.0" encoding="GB2312" ?>
<fill version="1.0">
<items>
<item name="prodid" value="8080" />
<item name="orderid" value="113344" />
<item name="tranid" value="" />
<item name="resultno" value="1011" />
<item name="" value="" />
<item name="verifystring" value="3998c6dce7e1f08bcebbe664c7030c03" />
</items>
</fill>
用C#代码如何写,如何用xml来处理.
小弟才疏学浅,望各位大哥多多指点,小弟我感激不尽.<?xml version="1.0" encoding="GB2312" ?>
<fill version="1.0">
<items>
<item name="prodid" value="8080" />
<item name="orderid" value="113344" />
<item name="tranid" value="" />
<item name="resultno" value="1011" />
<item name="" value="" />
<item name="verifystring" value="3998c6dce7e1f08bcebbe664c7030c03" />
</items>
</fill>
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load("XML文件路径");
XmlNodeList xmlList = xmlDoc.SelectNodes("fill/items");
foreach(XmlNode xnf in xmlList)
{
for(int i=0;i<xnf.ChildNodes.Count;i++)
foreach(XmlAttribute xmlAtt in xnf.ChildNodes[i].Attributes)
result+=xmlAtt.Value+"\r\n";
}
/*输出结果:
prodid
8080
orderid
113344
tranidresultno
1011
verifystring
3998c6dce7e1f08bcebbe664c7030c03
*/
加入你的这个xml文件存放路径为 : c:\a.xml 首先根据你的xml格式定义3个类 (记得引用 using System.Xml.Serialization;) 如下:
public class Item
{
private string m_name;
[XmlAttribute("name")]
public string Name
{
get { return m_name; }
set { m_name = value; }
} private string m_value;
[XmlAttribute("value")]
public string MValue
{
get { return m_value; }
set { m_value = value;}
}
} public class Items
{
private List<Item> m_item;
[XmlElement("item")]
public List<Item> ItemList
{
get { return m_item; }
set { m_item = value; }
}
} [XmlRoot("fill")]
public class Fill
{
private string m_version;
[XmlAttribute("version")]
public string Version
{
get { return m_version; }
set { m_version = value; }
} private Items m_items;
[XmlElement("items")]
public Items Item
{
get { return m_items; }
set { m_items = value; }
} }我是在控制台程序里面做的测试:
控制台程序添加如下下面一个方法:
static T DeSerializaXmlToObject<T>(string xml) where T : class, new()
{
T t = new T();
using (StringReader reader = new StringReader(xml))
{
XmlSerializer serializer = new XmlSerializer(t.GetType());
object temp = serializer.Deserialize(reader);
t = temp as T;
}
return t;
}然后在Main 主函数里面调用该方法:
static void Main(string[] args)
{
string xmlPath = @"C:\a.xml";
using (StreamReader reader = new StreamReader(xmlPath))
{
Fill fill = DeSerializaXmlToObject<Fill>(reader.ReadToEnd());
if (fill != null && fill.Item != null)
{
foreach (Item obj in fill.Item.ItemList)
{
Console.WriteLine(obj.Name + " = " + obj.MValue);
}
}
}
Console.Read();
}这样就能取出来了。可以参考一下。
class Program
{
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
doc.Load("file.xml"); XmlNodeList xnl1 = doc.DocumentElement.ChildNodes;
XmlNode x1 = xnl1[0];
XmlNodeList xnl = x1.ChildNodes;
string result = string.Empty;
string temp = string.Empty;
foreach (XmlNode xn in xnl)
{
XmlElement xe = xn as XmlElement;
if (xe != null)
{
result = result + xe.GetAttribute("name") + "=" + xe.GetAttribute("value") + " ";
} }
Console.WriteLine(result);
}
}
class Program
{
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
doc.Load("file.xml"); XmlNodeList xnl1 = doc.DocumentElement.ChildNodes;
XmlNode x1 = xnl1[0];
XmlNodeList xnl = x1.ChildNodes;
string result = string.Empty;
string temp = string.Empty;
foreach (XmlNode xn in xnl)
{
XmlElement xe = xn as XmlElement;
if (xe != null)
{
result = result + xe.GetAttribute("name") + "=" + xe.GetAttribute("value") + " ";
} }
Console.WriteLine(result);
}
}