
-
获取XML节点的值(http服务使用xml传输数据,节点名称唯一)
/// <summary>
/// 获取xml节点的值
/// </summary>
/// <param name="xml">xml字符串</param>
/// <param name="xmlnode">节点名</param>
/// <returns>节点值</returns>
public static string GetXmlNodeValue(string xml, string xmlnode)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
string val = XDocument.Load(new StringReader(xml)).Descendants(xmlnode).First().Value;
return val;
} -
获取XML节点的内容(http服务使用xml传输数据,节点名称唯一)
/// <summary>
/// 获取xml节点的内容
/// </summary>
/// <param name="xml">xml字符串</param>
/// <param name="xmlnode">节点名</param>
/// <returns>节点值</returns>
public static string GetXmlNodeNode(string xml, string xmlnode)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
object val = XDocument.Load(new StringReader(xml)).Descendants(xmlnode).First();
return val.ToString();
} -
XML与DataSet互转(xml文件与DataTable格式一致)
private string ConvertDataTableToXML(DataTable xmlDS)
{
MemoryStream stream = null;
XmlTextWriter writer = null;
try
{
stream = new MemoryStream();
writer = new XmlTextWriter(stream, Encoding.Default);
xmlDS.WriteXml(writer);
int count = (int)stream.Length;
byte[] arr = new byte[count];
stream.Seek(, SeekOrigin.Begin);
stream.Read(arr, , count);
UTF8Encoding utf = new UTF8Encoding();
return utf.GetString(arr).Trim();
}
catch
{
return String.Empty;
}
finally
{
if (writer != null) writer.Close();
}
}
private DataSet ConvertXMLToDataSet(string xmlData)
{
StringReader stream = null;
XmlTextReader reader = null;
try
{
DataSet xmlDS = new DataSet();
stream = new StringReader(xmlData);
reader = new XmlTextReader(stream);
xmlDS.ReadXml(reader);
return xmlDS;
}
catch (Exception ex)
{
string strTest = ex.Message;
return null;
}
finally
{
if (reader != null)
reader.Close();
}
} - 获取节点的所有子节点,并用哈希表保存值
//获取节点的所有子节点,并用哈希表保存值
private Hashtable GetChildNodesHT(XmlDocument xmlDoc, string strNodeName)
{
Hashtable ht = new Hashtable();
XmlNodeList xnThis = xmlDoc.GetElementsByTagName(strNodeName);
try
{
XmlNodeList childNodes = xnThis[].ChildNodes;
foreach (XmlNode xn in childNodes)
{
if (ht.ContainsKey(xn.Name) == false)
{
ht[xn.Name] = xn.InnerText;
}
}
}
catch { }
return ht;
}