解析XML
来源:互联网 发布:中国烟草总公司 知乎 编辑:程序博客网 时间:2024/03/28 16:57
public class PhoneSearch
{
private XmlDocument m_XMLDocumet;
private XmlNamespaceManager m_XMLNamespaceManager;
private string m_XMLData;
public string XMLData
{
get { return m_XMLData; }
}
#region 构造函数
public PhoneSearch(string XMLData)
{
m_XMLData = XMLData;
m_XMLDocumet = new XmlDocument();
m_XMLDocumet.LoadXml(XMLData);
m_XMLNamespaceManager = new XmlNamespaceManager(m_XMLDocumet.NameTable);
XmlElement rootElement = m_XMLDocumet.DocumentElement;
if (rootElement.HasAttributes)
{
foreach (XmlAttribute nsAttribute in rootElement.Attributes)
{
if (nsAttribute.LocalName == "xmlns")
{
continue;
}
m_XMLNamespaceManager.AddNamespace(nsAttribute.LocalName, nsAttribute.Value);
}
}
}
#endregion
/// <summary>
/// 将一个节点的内容转换为Dictionary
/// </summary>
/// <param name="xpath">xpath</param>
/// <returns></returns>
public static Dictionary<string, string> getDictionaryOfANode(XmlNodeList childNodeList)
{
Dictionary<string, string> result = new Dictionary<string, string>();
foreach (XmlNode childNode in childNodeList)//单个节点
{
if (result.ContainsKey(childNode.Name))
{
continue;
}
result.Add(childNode.Name, childNode.InnerXml);
}
return result;
}
/// <summary>
/// 将一个节点的内容转换为 ArrayList
/// </summary>
/// <param name="childNodeList"></param>
/// <returns></returns>
public System.Collections.ArrayList getArrlistOfANode(XmlNodeList childNodeList)
{
System.Collections.ArrayList arraylist = new System.Collections.ArrayList();
foreach (XmlNode childNode in childNodeList)//单个节点
{
arraylist.Add(childNode.InnerXml);
}
return arraylist;
}
#region 解析XML
/// <summary>
/// 解析XML Dictionary
/// </summary>
/// <param name="xml"></param>
/// <param name="xpath"></param>
/// <returns></returns>
public Dictionary<string, Dictionary<string, string>> XmlToDictionary(string xml, string xpath)
{
//Dictionary<string, string> result = new Dictionary<string, string>();
Dictionary<string, Dictionary<string, string>> result = new Dictionary<string, Dictionary<string, string>>();
try
{
//XmlDocument document = new XmlDocument();
//document.LoadXml(xml);
//XmlElement rootElement = document.DocumentElement;//根节点
XmlElement rootElement = m_XMLDocumet.DocumentElement;
XmlNodeList childNodeList = rootElement.SelectNodes(xpath,m_XMLNamespaceManager);//节点集合,所有子节点
int i = 0;
foreach (XmlNode childNode in childNodeList)
{
if (result.ContainsKey(childNode.Name))
{
continue;
}
Dictionary<string, string> myDic = getDictionaryOfANode(childNode.ChildNodes);
result.Add(Convert.ToString(i), myDic);
i++;
}
}
catch (XmlException ex)
{
//Console.WriteLine(ex.Message);
}
return result;
}
/// <summary>
/// 解析XML 返回dataTable
/// </summary>
/// <param name="xml"></param>
/// <param name="xpath"></param>
/// <returns></returns>
public DataTable XmlToDataTable(string xml, string xpath)
{
DataTable datTable = new DataTable();
DataColumn dc = new DataColumn("UserPhoNum");
////指定字段的数据类型,这步没有也不会出错
//dc.DataType = System.Type.GetType("System.String");
datTable.Columns.Add(dc);
dc = new DataColumn("fIDUser");
datTable.Columns.Add(dc);
dc = new DataColumn("StaffPhoNum");
datTable.Columns.Add(dc);
dc = new DataColumn("Staff");
datTable.Columns.Add(dc);
dc = new DataColumn("dtCall");
datTable.Columns.Add(dc);
dc = new DataColumn("dtAeccpt");
datTable.Columns.Add(dc);
dc = new DataColumn("dtEnd");
datTable.Columns.Add(dc);
dc = new DataColumn("RECFileName");
datTable.Columns.Add(dc);
dc = new DataColumn("Evaluate");
datTable.Columns.Add(dc);
dc = new DataColumn("Question");
datTable.Columns.Add(dc);
dc = new DataColumn("Solve");
datTable.Columns.Add(dc);
try
{
XmlElement rootElement = m_XMLDocumet.DocumentElement;
XmlNodeList childNodeList = rootElement.SelectNodes(xpath, m_XMLNamespaceManager);//节点集合,所有子节点
foreach (XmlNode childNode in childNodeList)
{
System.Collections.ArrayList arraylist = getArrlistOfANode(childNode.ChildNodes);
string[] arr = (string[])arraylist.ToArray(typeof(string)); ;
arraylist.Clear();
datTable.Rows.Add(arr);
}
}
catch (XmlException ex)
{
}
return datTable;
}
#endregion
}
{
private XmlDocument m_XMLDocumet;
private XmlNamespaceManager m_XMLNamespaceManager;
private string m_XMLData;
public string XMLData
{
get { return m_XMLData; }
}
#region 构造函数
public PhoneSearch(string XMLData)
{
m_XMLData = XMLData;
m_XMLDocumet = new XmlDocument();
m_XMLDocumet.LoadXml(XMLData);
m_XMLNamespaceManager = new XmlNamespaceManager(m_XMLDocumet.NameTable);
XmlElement rootElement = m_XMLDocumet.DocumentElement;
if (rootElement.HasAttributes)
{
foreach (XmlAttribute nsAttribute in rootElement.Attributes)
{
if (nsAttribute.LocalName == "xmlns")
{
continue;
}
m_XMLNamespaceManager.AddNamespace(nsAttribute.LocalName, nsAttribute.Value);
}
}
}
#endregion
/// <summary>
/// 将一个节点的内容转换为Dictionary
/// </summary>
/// <param name="xpath">xpath</param>
/// <returns></returns>
public static Dictionary<string, string> getDictionaryOfANode(XmlNodeList childNodeList)
{
Dictionary<string, string> result = new Dictionary<string, string>();
foreach (XmlNode childNode in childNodeList)//单个节点
{
if (result.ContainsKey(childNode.Name))
{
continue;
}
result.Add(childNode.Name, childNode.InnerXml);
}
return result;
}
/// <summary>
/// 将一个节点的内容转换为 ArrayList
/// </summary>
/// <param name="childNodeList"></param>
/// <returns></returns>
public System.Collections.ArrayList getArrlistOfANode(XmlNodeList childNodeList)
{
System.Collections.ArrayList arraylist = new System.Collections.ArrayList();
foreach (XmlNode childNode in childNodeList)//单个节点
{
arraylist.Add(childNode.InnerXml);
}
return arraylist;
}
#region 解析XML
/// <summary>
/// 解析XML Dictionary
/// </summary>
/// <param name="xml"></param>
/// <param name="xpath"></param>
/// <returns></returns>
public Dictionary<string, Dictionary<string, string>> XmlToDictionary(string xml, string xpath)
{
//Dictionary<string, string> result = new Dictionary<string, string>();
Dictionary<string, Dictionary<string, string>> result = new Dictionary<string, Dictionary<string, string>>();
try
{
//XmlDocument document = new XmlDocument();
//document.LoadXml(xml);
//XmlElement rootElement = document.DocumentElement;//根节点
XmlElement rootElement = m_XMLDocumet.DocumentElement;
XmlNodeList childNodeList = rootElement.SelectNodes(xpath,m_XMLNamespaceManager);//节点集合,所有子节点
int i = 0;
foreach (XmlNode childNode in childNodeList)
{
if (result.ContainsKey(childNode.Name))
{
continue;
}
Dictionary<string, string> myDic = getDictionaryOfANode(childNode.ChildNodes);
result.Add(Convert.ToString(i), myDic);
i++;
}
}
catch (XmlException ex)
{
//Console.WriteLine(ex.Message);
}
return result;
}
/// <summary>
/// 解析XML 返回dataTable
/// </summary>
/// <param name="xml"></param>
/// <param name="xpath"></param>
/// <returns></returns>
public DataTable XmlToDataTable(string xml, string xpath)
{
DataTable datTable = new DataTable();
DataColumn dc = new DataColumn("UserPhoNum");
////指定字段的数据类型,这步没有也不会出错
//dc.DataType = System.Type.GetType("System.String");
datTable.Columns.Add(dc);
dc = new DataColumn("fIDUser");
datTable.Columns.Add(dc);
dc = new DataColumn("StaffPhoNum");
datTable.Columns.Add(dc);
dc = new DataColumn("Staff");
datTable.Columns.Add(dc);
dc = new DataColumn("dtCall");
datTable.Columns.Add(dc);
dc = new DataColumn("dtAeccpt");
datTable.Columns.Add(dc);
dc = new DataColumn("dtEnd");
datTable.Columns.Add(dc);
dc = new DataColumn("RECFileName");
datTable.Columns.Add(dc);
dc = new DataColumn("Evaluate");
datTable.Columns.Add(dc);
dc = new DataColumn("Question");
datTable.Columns.Add(dc);
dc = new DataColumn("Solve");
datTable.Columns.Add(dc);
try
{
XmlElement rootElement = m_XMLDocumet.DocumentElement;
XmlNodeList childNodeList = rootElement.SelectNodes(xpath, m_XMLNamespaceManager);//节点集合,所有子节点
foreach (XmlNode childNode in childNodeList)
{
System.Collections.ArrayList arraylist = getArrlistOfANode(childNode.ChildNodes);
string[] arr = (string[])arraylist.ToArray(typeof(string)); ;
arraylist.Clear();
datTable.Rows.Add(arr);
}
}
catch (XmlException ex)
{
}
return datTable;
}
#endregion
}
- XML解析
- xml解析
- XML解析
- 解析XML
- xml解析
- 解析xml
- 解析xml
- xml解析
- XML解析
- xml解析
- XML解析
- xml解析
- xml解析
- xml解析
- xml解析
- xml解析
- 解析xml
- XML解析
- 灰度共生矩阵
- 加入透明FLASH
- C#中奇妙的操作符重载
- 一个java笔试题的实现:用5位字符表示日期,并且要求500年不能重复
- Java编程那些事儿12——第一个HelloWorld程序
- 解析XML
- Ajax核心:XMLHTTP组件相关技术资料
- Martin Fowler使用SVN
- 科学家发明“人工云朵” 可千变万化当广告
- 留言板分页功能(PHP)
- Asp.Net之枚举类型输出需要类型转换
- 设计模式中的相关基础类文件
- 使用Remoting技术
- Subversion的权限控制