简单生活 发表于 2015-1-16 22:31:11

ASP.NET网页设计asp.net的XML通用操纵类

也不知道,我同学昨天说数据挖掘很好。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;
}

#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.Rows;
}

#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.Rows;
}

#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;
}
#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;

if(dt.Rows!=null)
{
dt.Rows=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;

if(dt.Rows!=null)
{
dt.Rows=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.TableName;
ds.Tables["typeTable"].Rows.Add(dr);
}
}
else
{
ds=ds1.Copy();
}
}
}
else
{
DataSetds2=newDataSet();
ds2.ReadXml(XmlPath);
if(ds2.Tables!=null)
{
ds.Tables.Add(ds2.Tables.Copy());
}
}
returnds;
}
///<summary>
///escapeinvalidUnicodeinXML
///</summary>
///<paramname="str"></param>
///<returns></returns>
publicstaticstringReplaceinvalid(stringstr)
{
System.Text.RegularExpressions.Regexr=newSystem.Text.RegularExpressions.Regex("");
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复习了一遍,发现了许多以前还不知道的细节。

爱飞 发表于 2015-1-19 16:05:17

asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源

仓酷云 发表于 2015-1-26 17:06:12

CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。

分手快乐 发表于 2015-2-4 20:09:26

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。

深爱那片海 发表于 2015-2-10 06:38:02

Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!

再现理想 发表于 2015-3-1 02:04:29

在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。

小魔女 发表于 2015-3-10 12:26:26

对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。

海妖 发表于 2015-3-17 07:08:35

Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。

飘飘悠悠 发表于 2015-3-24 01:00:52

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
页: [1]
查看完整版本: ASP.NET网页设计asp.net的XML通用操纵类