獲取XML節點的值(http服務使用xml傳輸數據,節點名稱惟一)
node
/// <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傳輸數據,節點名稱惟一)spa
/// <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格式一致)code
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(0, SeekOrigin.Begin); stream.Read(arr, 0, 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[0].ChildNodes; foreach (XmlNode xn in childNodes) { if (ht.ContainsKey(xn.Name) == false) { ht[xn.Name] = xn.InnerText; } } } catch { } return ht; }