XmlHelper

时间:2023-03-09 19:34:30
XmlHelper
  1. 获取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;
    }
  2. 获取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();
    }
  3. 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();
    }
    }
  4. 获取节点的所有子节点,并用哈希表保存值
//获取节点的所有子节点,并用哈希表保存值
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;
}