|
using System.Collections;
|
using System.Data;
|
using System.IO;
|
using System.Web;
|
using System.Xml;
|
|
namespace Common
|
{
|
public class XmlHelper
|
{
|
private XmlDocument xmlDoc = new XmlDocument();
|
private XmlNode xmlNode;
|
private XmlElement xmlElem;
|
|
public static DataSet GetDataSet(string xmlFilePath)
|
{
|
DataSet dataSet = new DataSet();
|
if (File.Exists(xmlFilePath))
|
{
|
int num = (int) dataSet.ReadXml(xmlFilePath);
|
}
|
return dataSet;
|
}
|
|
public static bool WriteTableToXml(DataTable dt, string xmlFilePath)
|
{
|
try
|
{
|
dt.WriteXml(xmlFilePath);
|
return true;
|
}
|
catch
|
{
|
return false;
|
}
|
}
|
|
public static bool WriteDataSetToXml(DataSet ds, string xmlFilePath)
|
{
|
try
|
{
|
ds.WriteXml(xmlFilePath);
|
return true;
|
}
|
catch
|
{
|
return false;
|
}
|
}
|
|
public static bool DeleteTableRows(DataTable dt, int index, string xmlFilePath)
|
{
|
dt.Rows[index].Delete();
|
return XmlHelper.WriteTableToXml(dt, xmlFilePath);
|
}
|
|
public static bool DeleteTableRowsInDataSet(DataSet ds, int tableIndex, int rowIndex, string xmlFilePath)
|
{
|
ds.Tables[tableIndex].Rows[rowIndex].Delete();
|
return XmlHelper.WriteDataSetToXml(ds, xmlFilePath);
|
}
|
|
public static DataSet GetXml(string XmlPath)
|
{
|
DataSet dataSet = new DataSet();
|
int num = (int) dataSet.ReadXml(XmlPath);
|
return dataSet;
|
}
|
|
public static DataTable readXML()
|
{
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(HttpContext.Current.Server.MapPath("xml/XmlComfig.xml"));
|
DataTable dataTable = new DataTable("config");
|
dataTable.Columns.Add("id");
|
dataTable.Columns.Add("val");
|
foreach (XmlNode xmlNode1 in xmlDocument.ChildNodes)
|
{
|
if (xmlNode1.Name == "config")
|
{
|
foreach (XmlNode xmlNode2 in xmlNode1)
|
{
|
if (xmlNode2.Name == "item")
|
{
|
DataRow row = dataTable.NewRow();
|
row["id"] = (object) xmlNode2.Attributes["key"].Value;
|
row["val"] = (object) xmlNode2.Attributes["value"].Value;
|
dataTable.Rows.Add(row);
|
}
|
}
|
}
|
}
|
return dataTable;
|
}
|
|
public static string ReadXmlReturnNode(string XmlPath, string Node)
|
{
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(XmlPath);
|
return xmlDocument.GetElementsByTagName(Node).Item(0).InnerText.ToString();
|
}
|
|
public static DataSet GetXmlData(string xmlPath, string XmlPathNode)
|
{
|
XmlDocument xmlDocument = new XmlDocument();
|
try
|
{
|
xmlDocument.Load(xmlPath);
|
DataSet dataSet = new DataSet();
|
StringReader stringReader = new StringReader(xmlDocument.SelectSingleNode(XmlPathNode).OuterXml);
|
int num = (int) dataSet.ReadXml((TextReader) stringReader);
|
return dataSet;
|
}
|
catch
|
{
|
return (DataSet) null;
|
}
|
}
|
|
public static void XmlNodeReplace(string xmlPath, string Node, string Content)
|
{
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(xmlPath);
|
xmlDocument.SelectSingleNode(Node).InnerText = Content;
|
xmlDocument.Save(xmlPath);
|
}
|
|
public static void UpdateXml(DataTable dtab)
|
{
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(HttpContext.Current.Server.MapPath("xml/XmlComfig.xml"));
|
XmlNodeList childNodes = xmlDocument.ChildNodes;
|
int index = 0;
|
foreach (XmlNode xmlNode1 in childNodes)
|
{
|
if (xmlNode1.Name == "topictype")
|
{
|
foreach (XmlNode xmlNode2 in xmlNode1)
|
{
|
if (xmlNode2.Name == "item")
|
{
|
xmlNode2.Attributes["key"].Value = dtab.Rows[index]["id"].ToString();
|
xmlNode2.Attributes["value"].Value = dtab.Rows[index]["val"].ToString();
|
++index;
|
}
|
}
|
}
|
}
|
xmlDocument.Save(HttpContext.Current.Server.MapPath("xml/XmlComfig.xml"));
|
}
|
|
public static void XmlNodeDelete(string xmlPath, string Node)
|
{
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(xmlPath);
|
string xpath = Node.Substring(0, Node.LastIndexOf("/"));
|
xmlDocument.SelectSingleNode(xpath).RemoveChild(xmlDocument.SelectSingleNode(Node));
|
xmlDocument.Save(xmlPath);
|
}
|
|
public static void XmlInsertNode(string xmlPath, string MailNode, string ChildNode, string Element, string Content)
|
{
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(xmlPath);
|
XmlNode xmlNode = xmlDocument.SelectSingleNode(MailNode);
|
XmlElement element1 = xmlDocument.CreateElement(ChildNode);
|
xmlNode.AppendChild((XmlNode) element1);
|
XmlElement element2 = xmlDocument.CreateElement(Element);
|
element2.InnerText = Content;
|
element1.AppendChild((XmlNode) element2);
|
xmlDocument.Save(xmlPath);
|
}
|
|
public static void XmlInsertElement(string xmlPath, string MainNode, string Element, string Attrib, string AttribContent, string Content)
|
{
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(xmlPath);
|
XmlNode xmlNode = xmlDocument.SelectSingleNode(MainNode);
|
XmlElement element = xmlDocument.CreateElement(Element);
|
element.SetAttribute(Attrib, AttribContent);
|
element.InnerText = Content;
|
xmlNode.AppendChild((XmlNode) element);
|
xmlDocument.Save(xmlPath);
|
}
|
|
public static void XmlInsertElement(string xmlPath, string MainNode, string Element, string Content)
|
{
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(xmlPath);
|
XmlNode xmlNode = xmlDocument.SelectSingleNode(MainNode);
|
XmlElement element = xmlDocument.CreateElement(Element);
|
element.InnerText = Content;
|
xmlNode.AppendChild((XmlNode) element);
|
xmlDocument.Save(xmlPath);
|
}
|
|
public void CreateXmlRoot(string root)
|
{
|
this.xmlNode = this.xmlDoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
|
this.xmlDoc.AppendChild(this.xmlNode);
|
this.xmlElem = this.xmlDoc.CreateElement("", root, "");
|
this.xmlDoc.AppendChild((XmlNode) this.xmlElem);
|
}
|
|
public void CreatXmlNode(string mainNode, string node)
|
{
|
this.xmlDoc.SelectSingleNode(mainNode).AppendChild((XmlNode) this.xmlDoc.CreateElement(node));
|
}
|
|
public void CreatXmlNode(string mainNode, string node, string content)
|
{
|
XmlNode xmlNode = this.xmlDoc.SelectSingleNode(mainNode);
|
XmlElement element = this.xmlDoc.CreateElement(node);
|
element.InnerText = content;
|
xmlNode.AppendChild((XmlNode) element);
|
}
|
|
public void CreatXmlNode(string MainNode, string Node, string Attrib, string AttribValue)
|
{
|
XmlNode xmlNode = this.xmlDoc.SelectSingleNode(MainNode);
|
XmlElement element = this.xmlDoc.CreateElement(Node);
|
element.SetAttribute(Attrib, AttribValue);
|
xmlNode.AppendChild((XmlNode) element);
|
}
|
|
public void CreatXmlNode(string MainNode, string Node, string Attrib, string AttribValue, string Content)
|
{
|
XmlNode xmlNode = this.xmlDoc.SelectSingleNode(MainNode);
|
XmlElement element = this.xmlDoc.CreateElement(Node);
|
element.SetAttribute(Attrib, AttribValue);
|
element.InnerText = Content;
|
xmlNode.AppendChild((XmlNode) element);
|
}
|
|
public void CreatXmlNode(string MainNode, string Node, string Attrib, string AttribValue, string Attrib2, string AttribValue2)
|
{
|
XmlNode xmlNode = this.xmlDoc.SelectSingleNode(MainNode);
|
XmlElement element = this.xmlDoc.CreateElement(Node);
|
element.SetAttribute(Attrib, AttribValue);
|
element.SetAttribute(Attrib2, AttribValue2);
|
xmlNode.AppendChild((XmlNode) element);
|
}
|
|
public void CreatXmlNode(string MainNode, string Node, string Attrib, string AttribValue, string Attrib2, string AttribValue2, string Content)
|
{
|
XmlNode xmlNode = this.xmlDoc.SelectSingleNode(MainNode);
|
XmlElement element = this.xmlDoc.CreateElement(Node);
|
element.SetAttribute(Attrib, AttribValue);
|
element.SetAttribute(Attrib2, AttribValue2);
|
element.InnerText = Content;
|
xmlNode.AppendChild((XmlNode) element);
|
}
|
|
public void XmlSave(string path)
|
{
|
this.xmlDoc.Save(path);
|
}
|
|
public static ArrayList GetSubElementByAttribute(string XmlPath, string FatherElenetName, string AttributeName, int AttributeIndex, int ArrayLength)
|
{
|
ArrayList arrayList = new ArrayList();
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(XmlPath);
|
foreach (XmlElement xmlElement in xmlDocument.DocumentElement.ChildNodes)
|
{
|
if (xmlElement.Name == FatherElenetName)
|
{
|
if (xmlElement.Attributes.Count < AttributeIndex)
|
return (ArrayList) null;
|
if (xmlElement.Attributes[AttributeIndex].Value == AttributeName)
|
{
|
XmlNodeList childNodes = xmlElement.ChildNodes;
|
if (childNodes.Count > 0)
|
{
|
for (int index = 0; index < ArrayLength & index < childNodes.Count; ++index)
|
arrayList.Add((object) childNodes[index].InnerText);
|
}
|
}
|
}
|
}
|
return arrayList;
|
}
|
|
public static ArrayList GetSubElementByAttribute(string XmlPath, string FatherElement, string AttributeName, string AttributeValue, int ArrayLength)
|
{
|
ArrayList arrayList = new ArrayList();
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(XmlPath);
|
XmlNodeList childNodes = xmlDocument.DocumentElement.SelectNodes("//" + FatherElement + "[" + AttributeName + "='" + AttributeValue + "']").Item(0).ChildNodes;
|
for (int index = 0; index < ArrayLength & index < childNodes.Count; ++index)
|
arrayList.Add((object) childNodes.Item(index).InnerText);
|
return arrayList;
|
}
|
|
public static ArrayList GetSubElementByAttribute(XmlDocument docXml, string FatherElement, int ArrayLength)
|
{
|
ArrayList arrayList = new ArrayList();
|
XmlNodeList childNodes = docXml.DocumentElement.SelectNodes("//" + FatherElement).Item(0).ChildNodes;
|
for (int index = 0; index < ArrayLength & index < childNodes.Count; ++index)
|
arrayList.Add((object) childNodes.Item(index).InnerText);
|
return arrayList;
|
}
|
}
|
}
|