|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
也不知道,我同学昨天说数据挖掘很好。usingSystem;
usingSystem.Xml;
usingSystem.Data;
namespaceMessage.Common
{
///<summary>
///XML相干通勤奋能
///</summary>
publicclassXml
{
publicXml(){}
///<summary>
///XML资本范例
///</summary>
publicenumXmlType
{
File,
String
};
#region读取XML资本到DataSet中
///<summary>
///读取XML资本到DataSet中
///</summary>
///<paramname="source">XML资本,文件为路径,不然为XML字符串</param>
///<paramname="xmlType">XML资本范例</param>
///<returns>DataSet</returns>
publicstaticDataSetGetDataSet(stringsource,XmlTypexmlType)
{
DataSetds=newDataSet();
if(xmlType==XmlType.File)
{
ds.ReadXml(source);
}
else
{
XmlDocumentxd=newXmlDocument();
xd.LoadXml(source);
XmlNodeReaderxnr=newXmlNodeReader(xd);
ds.ReadXml(xnr);
}
returnds;
}
#endregion
#region猎取一个字符串xml文档中的ds
///<remarks>
///赵洪
///</remarks>
///<summary>
///猎取一个字符串xml文档中的ds
///</summary>
///<paramname="xml_string">含有xml信息的字符串</param>
publicstaticvoidget_XmlValue_ds(stringxml_string,refDataSetds)
{
System.Xml.XmlDocumentxd=newXmlDocument();
xd.LoadXml(xml_string);
XmlNodeReaderxnr=newXmlNodeReader(xd);
ds.ReadXml(xnr);
xnr.Close();
inta=ds.Tables.Count;
}
#endregion
#region读取XML资本到DataTable中
///<summary>
///读取XML资本到DataTable中
///</summary>
///<paramname="source">XML资本,文件为路径,不然为XML字符串</param>
///<paramname="xmlType">XML资本范例:文件,字符串</param>
///<paramname="tableName">表称号</param>
///<returns>DataTable</returns>
publicstaticDataTableGetTable(stringsource,XmlTypexmlType,stringtableName)
{
DataSetds=newDataSet();
if(xmlType==XmlType.File)
{
ds.ReadXml(source);
}
else
{
XmlDocumentxd=newXmlDocument();
xd.LoadXml(source);
XmlNodeReaderxnr=newXmlNodeReader(xd);
ds.ReadXml(xnr);
}
returnds.Tables[tableName];
}
#endregion
#region读取XML资本中指定的DataTable的指定行指定列的值
///<summary>
///读取XML资本中指定的DataTable的指定行指定列的值
///</summary>
///<paramname="source">XML资本</param>
///<paramname="xmlType">XML资本范例:文件,字符串</param>
///<paramname="tableName">表名</param>
///<paramname="rowIndex">行号</param>
///<paramname="colName">列名</param>
///<returns>值,不存在时前往Null</returns>
publicstaticobjectGetTableCell(stringsource,XmlTypexmlType,stringtableName,introwIndex,stringcolName)
{
DataSetds=newDataSet();
if(xmlType==XmlType.File)
{
ds.ReadXml(source);
}
else
{
XmlDocumentxd=newXmlDocument();
xd.LoadXml(source);
XmlNodeReaderxnr=newXmlNodeReader(xd);
ds.ReadXml(xnr);
}
returnds.Tables[tableName].Rows[rowIndex][colName];
}
#endregion
#region读取XML资本中指定的DataTable的指定行指定列的值
///<summary>
///读取XML资本中指定的DataTable的指定行指定列的值
///</summary>
///<paramname="source">XML资本</param>
///<paramname="xmlType">XML资本范例:文件,字符串</param>
///<paramname="tableName">表名</param>
///<paramname="rowIndex">行号</param>
///<paramname="colIndex">列号</param>
///<returns>值,不存在时前往Null</returns>
publicstaticobjectGetTableCell(stringsource,XmlTypexmlType,stringtableName,introwIndex,intcolIndex)
{
DataSetds=newDataSet();
if(xmlType==XmlType.File)
{
ds.ReadXml(source);
}
else
{
XmlDocumentxd=newXmlDocument();
xd.LoadXml(source);
XmlNodeReaderxnr=newXmlNodeReader(xd);
ds.ReadXml(xnr);
}
returnds.Tables[tableName].Rows[rowIndex][colIndex];
}
#endregion
#region猎取一个字符串xml文档中的一个table,指定行,指定列的值
///<summary>
///猎取一个字符串xml文档中的一个table,指定行,指定列的值
///</summary>
///<paramname="xml_string">含有xml信息的字符串</param>
///<paramname="tablename">表名</param>
///<paramname="row_index">指定行</param>
///<paramname="col_name">指定列名</param>
///<returns>响应节点的值</returns>
publicstaticstringget_XmlValue(stringxml_string,stringtablename,introw_index,stringcol_name)
{
System.Xml.XmlDocumentxd=newXmlDocument();
xd.LoadXml(xml_string);
XmlElementroot=xd.DocumentElement;
XmlNodexe=root.CloneNode(false);
xe=root.SelectNodes(tablename).Item(row_index);
stringval="";
if(null==xe)
{
return"";
}
foreach(XmlNodexninxe.ChildNodes)
{
if(xn.LocalName==col_name)
{
val=xn.InnerText;
break;
}
}
returnval;
}
///<summary>
///猎取一个xml文件中的一个table,指定行,指定列的值
///</summary>
///<paramname="xml_string">含有xml信息的字符串</param>
///<paramname="tablename">表名</param>
///<paramname="row_index">指定行</param>
///<paramname="col_name">指定列名</param>
///<returns>响应节点的值</returns>
publicstaticstringget_XmlValue(stringxml_string,stringtablename,introw_index,stringcol_name,boolisfile)
{
System.Xml.XmlDocumentxd=newXmlDocument();
if(isfile)
xd.Load(xml_string);
else
xd.LoadXml(xml_string);
XmlElementroot=xd.DocumentElement;
XmlNodexe=root.CloneNode(false);
xe=root.SelectNodes(tablename).Item(row_index);
stringval="";
if(null==xe)
{
return"";
}
foreach(XmlNodexninxe.ChildNodes)
{
if(xn.LocalName==col_name)
{
val=xn.InnerText;
break;
}
}
returnval;
}
#endregion
#region猎取一个字符串xml文档中的dt
///<remarks>
///
///</remarks>
///<summary>
///猎取一个字符串xml文档中的dt
///</summary>
///<paramname="xml_string">含有xml信息的字符串</param>
publicstaticvoidget_XmlValue_dt(stringxml_string,refDataTabledt,stringtable_name)
{
DataSetds=newDataSet();
System.Xml.XmlDocumentxd=newXmlDocument();
xd.LoadXml(xml_string);
//System.IO.FileStreamfs=newSystem.IO.FileStream("c:aa.xml",System.IO.FileMode.Open);
//xd.Save(fs);
//System.Xml.XmlReaderxr=(System.Xml.XmlReader)((object)sr);
//ds=newDataSet();
XmlNodeReaderxnr=newXmlNodeReader(xd);
ds.ReadXml(xnr);
xnr.Close();
dt=ds.Tables[table_name];
}
#endregion
#region将DataTable写进XML文件中
///<summary>
///将DataTable写进XML文件中
///</summary>
///<paramname="dt">含无数据的DataTable</param>
///<paramname="filePath">文件路径</param>
publicstaticvoidSaveTableToFile(DataTabledt,stringfilePath)
{
DataSetds=newDataSet("Config");
ds.Tables.Add(dt.Copy());
ds.WriteXml(filePath);
}
#endregion
#region将DataTable以指定的根结点称号写进文件
///<summary>
///将DataTable以指定的根结点称号写进文件
///</summary>
///<paramname="dt">含无数据的DataTable</param>
///<paramname="rootName">根结点称号</param>
///<paramname="filePath">文件路径</param>
publicstaticvoidSaveTableToFile(DataTabledt,stringrootName,stringfilePath)
{
DataSetds=newDataSet(rootName);
ds.Tables.Add(dt.Copy());
ds.WriteXml(filePath);
}
#endregion
#region利用DataSet体例更新XML文件节点
///<summary>
///利用DataSet体例更新XML文件节点
///</summary>
///<paramname="filePath">XML文件路径</param>
///<paramname="tableName">表称号</param>
///<paramname="rowIndex">行号</param>
///<paramname="colName">列名</param>
///<paramname="content">更新值</param>
///<returns>更新是不是乐成</returns>
publicstaticboolUpdateTableCell(stringfilePath,stringtableName,introwIndex,stringcolName,stringcontent)
{
boolflag=false;
DataSetds=newDataSet();
ds.ReadXml(filePath);
DataTabledt=ds.Tables[tableName];
if(dt.Rows[rowIndex][colName]!=null)
{
dt.Rows[rowIndex][colName]=content;
ds.WriteXml(filePath);
flag=true;
}
else
{
flag=false;
}
returnflag;
}
#endregion
#region利用DataSet体例更新XML文件节点
///<summary>
///利用DataSet体例更新XML文件节点
///</summary>
///<paramname="filePath">XML文件路径</param>
///<paramname="tableName">表称号</param>
///<paramname="rowIndex">行号</param>
///<paramname="colIndex">列号</param>
///<paramname="content">更新值</param>
///<returns>更新是不是乐成</returns>
publicstaticboolUpdateTableCell(stringfilePath,stringtableName,introwIndex,intcolIndex,stringcontent)
{
boolflag=false;
DataSetds=newDataSet();
ds.ReadXml(filePath);
DataTabledt=ds.Tables[tableName];
if(dt.Rows[rowIndex][colIndex]!=null)
{
dt.Rows[rowIndex][colIndex]=content;
ds.WriteXml(filePath);
flag=true;
}
else
{
flag=false;
}
returnflag;
}
#endregion
#region读取XML资本中的指定节点内容
///<summary>
///读取XML资本中的指定节点内容
///</summary>
///<paramname="source">XML资本</param>
///<paramname="xmlType">XML资本范例:文件,字符串</param>
///<paramname="nodeName">节点称号</param>
///<returns>节点内容</returns>
publicstaticobjectGetNodeValue(stringsource,XmlTypexmlType,stringnodeName)
{
XmlDocumentxd=newXmlDocument();
if(xmlType==XmlType.File)
{
xd.Load(source);
}
else
{
xd.LoadXml(source);
}
XmlElementxe=xd.DocumentElement;
XmlNodexn=xe.SelectSingleNode("//"+nodeName);
if(xn!=null)
{
returnxn.InnerText;
}
else
{
returnnull;
}
}
///<summary>
///读取XML资本中的指定节点内容
///</summary>
///<paramname="source">XML资本</param>
///<paramname="nodeName">节点称号</param>
///<returns>节点内容</returns>
publicstaticobjectGetNodeValue(stringsource,stringnodeName)
{
if(source==null||nodeName==null||source==""||nodeName==""||source.Length<nodeName.Length*2)
{
returnnull;
}
else
{
intstart=source.IndexOf("<"+nodeName+">")+nodeName.Length+2;
intend=source.IndexOf("</"+nodeName+">");
if(start==-1||end==-1)
{
returnnull;
}
elseif(start>=end)
{
returnnull;
}
else
{
returnsource.Substring(start,end-start);
}
}
}
#endregion
#region更新XML文件中的指定节点内容
///<summary>
///更新XML文件中的指定节点内容
///</summary>
///<paramname="filePath">文件路径</param>
///<paramname="nodeName">节点称号</param>
///<paramname="nodeValue">更新内容</param>
///<returns>更新是不是乐成</returns>
publicstaticboolUpdateNode(stringfilePath,stringnodeName,stringnodeValue)
{
boolflag=false;
XmlDocumentxd=newXmlDocument();
xd.Load(filePath);
XmlElementxe=xd.DocumentElement;
XmlNodexn=xe.SelectSingleNode("//"+nodeName);
if(xn!=null)
{
xn.InnerText=nodeValue;
flag=true;
}
else
{
flag=false;
}
returnflag;
}
#endregion
#region操纵xml文件中指定节点的数据
///<summary>
///取得xml文件中指定节点的节点数据
///</summary>
///<paramname="TableName"></param>
///<returns></returns>
publicstaticstringGetNodeInfoByNodeName(stringpath,stringnodeName)
{
stringXmlString="";
XmlDocumentxml=newXmlDocument();
xml.Load(path);
System.Xml.XmlElementroot=xml.DocumentElement;
System.Xml.XmlNodenode=root.SelectSingleNode("//"+nodeName);
if(node!=null)
{
XmlString=node.InnerText;
}
returnXmlString;
}
#endregion
///<summary>
///依据xml路径猎取DataSet。假如Table名为空:flag=false前往一切xml的数据;flag=true将xml中的table名作为数据项前往。不然依据table名猎取响应的table信息前往。
///</summary>
///<paramname="XmlPath">xml文件路径</param>
///<paramname="TableName">所要猎取的Table名,可为空</param>
///<paramname="flag">若为true,则只将一切表名作为数据项前往;若为false,则前往所要猎取的Table的一切数据</param>
///<returns>前往所猎取的DataSet</returns>
///<summary>
///依据xml路径猎取DataSet。假如Table名为空:flag=false前往一切xml的数据;flag=true将xml中的table名作为数据项前往。不然依据table名猎取响应的table信息前往。
///</summary>
///<paramname="XmlPath">xml文件路径</param>
///<paramname="TableName">所要猎取的Table名,可为空</param>
///<paramname="flag">若为true,则只将一切表名作为数据项前往;若为false,则前往所要猎取的Table的一切数据</param>
///<returns>前往所猎取的DataSet</returns>
publicstaticDataSetGetTableByXml(stringXmlPath,stringTableName,boolflag)
{
DataSetds=newDataSet();
if(TableName=="")
{
DataSetds1=newDataSet();
ds1.ReadXml(XmlPath);
if(ds1.Tables.Count>0)
{
if(flag)
{
DataTabledt=newDataTable("typeTable");
dt.Columns.Add("TableName",typeof(string));
ds.Tables.Add(dt);
for(inti=0;i<ds1.Tables.Count;i++)
{
DataRowdr=dt.NewRow();
dr["TableName"]=ds1.Tables[i].TableName;
ds.Tables["typeTable"].Rows.Add(dr);
}
}
else
{
ds=ds1.Copy();
}
}
}
else
{
DataSetds2=newDataSet();
ds2.ReadXml(XmlPath);
if(ds2.Tables[TableName]!=null)
{
ds.Tables.Add(ds2.Tables[TableName].Copy());
}
}
returnds;
}
///<summary>
///escapeinvalidUnicodeinXML
///</summary>
///<paramname="str"></param>
///<returns></returns>
publicstaticstringReplaceinvalid(stringstr)
{
System.Text.RegularExpressions.Regexr=newSystem.Text.RegularExpressions.Regex("[x00-x08|x0b-x0c|x0e-x1f]");
returnr.Replace(str,"");
}
///<summary>
///取得接口毛病信息
///</summary>
///<paramname="errCode">毛病编码</param>
///<returns></returns>
publicstaticstringGetInterfaceErrorString(stringerrCode)
{
System.Text.StringBuildersb=newSystem.Text.StringBuilder();
sb.Append("<?xmlversion="1.0"encoding="GB2312"?>");
sb.Append("<Root>");
sb.Append("<Result><return_result>"+errCode+"</return_result></Result>");
sb.Append("</Root>");
returnsb.ToString();
}
}
}
今天去面试,被问到C#中的new关键字,看了那么多的书对new关键字还是有一定认识,回来又把new复习了一遍,发现了许多以前还不知道的细节。 |
|