using System.Xml;
/// <summary>
/// Summary description for PublicXmlHelper
/// </summary>
public class PublicXmlHelper
{
public PublicXmlHelper()
{
//
// TODO: Add constructor logic here
//
}
/// <summary>
/// 獲得需要結點記錄
/// </summary>
/// <param name="objXmlDoc">接收的xml文檔</param>
/// <param name="strSelectNode">結點路徑</param>
/// <returns>結點的InnerText</returns>
public string getNodeData(XmlDocument objXmlDoc, string strSelectNode)
{
try
{
XmlNode xmlNode = objXmlDoc.SelectSingleNode(strSelectNode);
return xmlNode.InnerText.Trim();
}
catch
{
return string.Empty;
}
}
/// <summary>
/// 獲得指定查詢節點的子結點的數目
/// </summary>
/// <param name="objXmlDoc"></param>
/// <param name="QueryPath"></param>
/// <returns></returns>
public int ChildCount(XmlDocument objXmlDoc, string QueryPath)
{
try
{
XmlNode ResultNodes = objXmlDoc.SelectSingleNode(QueryPath);
return ResultNodes.ChildNodes.Count;
}
catch
{
return -1;
}
}
/// <summary>
/// 查找數據。返回一個DataView
/// </summary>
/// <param name="objXmlDoc">接收的xml文檔</param>
/// <param name="XmlPathNode">結點路徑</param>
/// <returns></returns>
public DataView GetData(XmlDocument objXmlDoc, string XmlPathNode)
{
DataSet ds = new DataSet();
StringReader read = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
ds.ReadXml(read);
return ds.Tables[0].DefaultView;
}
/// <summary>
/// 更新節點內容
/// </summary>
/// <param name="objXmlDoc"></param>
/// <param name="XmlPathNode"></param>
/// <param name="Content"></param>
public void Replace(XmlDocument objXmlDoc, string XmlPathNode, string Content)
{
objXmlDoc.SelectSingleNode(XmlPathNode).InnerText = Content;
}
/// <summary>
/// 刪除一個節點
/// </summary>
/// <param name="objXmlDoc"></param>
/// <param name="Node"></param>
public void Delete(XmlDocument objXmlDoc, string Node)
{
string mainNode = Node.Substring(0, Node.LastIndexOf("/"));
objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
}
/// <summary>
/// 插入一節點和此節點的一子節點
/// </summary>
/// <param name="objXmlDoc"></param>
/// <param name="MainNode"></param>
/// <param name="ChildNode"></param>
/// <param name="Element"></param>
/// <param name="Content"></param>
public void InsertNode(XmlDocument objXmlDoc, string MainNode, string ChildNode, string Element, string Content)
{
XmlNode objRootNode = objXmlDoc.SelectSingleNode(MainNode);
XmlElement objChildNode = objXmlDoc.CreateElement(ChildNode);
objRootNode.AppendChild(objChildNode);
XmlElement objElement = objXmlDoc.CreateElement(Element);
objElement.InnerText = Content;
objChildNode.AppendChild(objElement);
}
/// <summary>
/// 插入一個節點,不帶屬性
/// </summary>
/// <param name="objXmlDoc"></param>
/// <param name="MainNode"></param>
/// <param name="Element"></param>
/// <param name="Content"></param>
public void InsertElement(XmlDocument objXmlDoc, string MainNode, string Element, string Content)
{
XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
XmlElement objElement = objXmlDoc.CreateElement(Element);
objElement.InnerText = Content;
objNode.AppendChild(objElement);
}
/// <summary>
/// 保存文檔
/// </summary>
/// <param name="objXmlDoc"></param>
/// <param name="strXmlFile"></param>
public void Save(XmlDocument objXmlDoc, string strXmlFile)
{
try
{
objXmlDoc.Save(strXmlFile);
}
catch (System.Exception ex)
{
throw ex;
}
objXmlDoc = null;
}
}