using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Data; using System.IO;namespace Tsd { /// <summary> /// 操作XML文件的类 /// </summary> public class XmlHelper { protected string xmlFile; protected XmlDocument xmlDoc = new XmlDocument(); public XmlHelper(string xmlFile) { try { xmlDoc.Load(xmlFile); } catch (System.Exception ex) { throw ex; } this.xmlFile = xmlFile; }
xdoc.Load(xml文件位置);
XmlNode xnode = xdoc.DocumentElement;
XmlNode node = xnode.SelectSingleNode("newNode");
foreach (XmlNode xmlnode in node.ChildNodes)
{
MessageBox.Show(xmlnode.InnerText);
}
string id="";
string name="";
string age="";
foreach(xmlnode xn in xmldoc)
{
if(xn.name = "newnode")
{
id = xn.childnode["id"].innertext;
name = xn.childnode["firstname"].innertext;
……
}
}
<table class="Table" width="100%" border="0">
<tr>
<td bgcolor="#5a7dd1"><font color="white"><a href="AddReply.aspx?TitleID=<%# Eval("TitleID") %>"><font color="white">[回复文章]</font></a>
<font color="white">[本篇作者:<%# Eval("UserName") %>]</font>
</td>
</tr>
<tr>
<td>发帖人:<%# Eval("UserName") %>,所属区域:<%# Eval("BoardName")%>
</td>
</tr>
<tr>
<td>标 题:回复:<%=Name %>
</td>
</tr>
<tr>
<td>发信站:MRSOFTASPNET-XMLBBS(<%# Eval("CreateDate") %>),站内
</td>
</tr>
<tr>
<td><br /> <%# Eval("Body").ToString().Replace("\n","<br>") %><br />
</td>
</tr>
<tr>
<td><hr size="1" width="98%" /></td>
</tr>
</table>
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Data;
using System.IO;namespace Tsd
{
/// <summary>
/// 操作XML文件的类
/// </summary>
public class XmlHelper
{
protected string xmlFile;
protected XmlDocument xmlDoc = new XmlDocument(); public XmlHelper(string xmlFile)
{
try
{
xmlDoc.Load(xmlFile);
}
catch (System.Exception ex)
{
throw ex;
}
this.xmlFile = xmlFile;
}
/// <summary>
/// 查找数据。返回一个DataView
/// </summary>
/// <param name="xmlPathNode">带路径的节点名称,如:PENSON/NAME</param>
/// <returns></returns>
public DataView GetData(string xmlPathNode)
{
DataSet ds = new DataSet();
StringReader read = new StringReader(xmlDoc.SelectSingleNode(xmlPathNode).OuterXml);
ds.ReadXml(read);
return ds.Tables[0].DefaultView;
} /// <summary>
/// 更新节点内容
/// </summary>
/// <param name="xmlPathNode">带路径的节点名称,如:PENSON/NAME</param>
/// <param name="content">节点内容</param>
/// <param name="isSave">是否保存,true为保存,false为不保存</param>
public void Replace(string xmlPathNode, string content, bool isSave)
{
XmlNode node = xmlDoc.SelectSingleNode(xmlPathNode);
if (!IsExist(node))
{
return;
}
xmlDoc.SelectSingleNode(xmlPathNode).InnerText = content;
if (isSave) Save();
}
/// <summary>
/// 删除指定节点及其该节点的所有子节点
/// </summary>
/// <param name="nodeName">带路径的节点名称,如:PENSON/NAME</param>
/// <param name="isSave">是否保存,true为保存,false为不保存</param>
public void Delete(string nodeName, bool isSave)
{
string mainNode = nodeName.Substring(0, nodeName.LastIndexOf("/"));
XmlNode node = xmlDoc.SelectSingleNode(nodeName);
if (!IsExist(node))
{
return;
}
xmlDoc.SelectSingleNode(mainNode).RemoveChild(xmlDoc.SelectSingleNode(nodeName));
if (isSave) Save();
} /// <summary>
/// 插入一节点和此节点的一子节点。
/// </summary>
/// <param name="mainNode">待插入的父节点名称(带路径)</param>
/// <param name="childNode">待插入的节点名称</param>
/// <param name="element">待插入的子节点名称</param>
/// <param name="content">待插入的子节点内容</param>
/// <param name="isSave">是否保存,true为保存,false为不保存</param>
public void InsertNode(string mainNode, string childNode, string element, string content, bool isSave)
{
XmlNode rootNode = xmlDoc.SelectSingleNode(mainNode);
if (!IsExist(rootNode))
{
return;
}
XmlElement childElement = xmlDoc.CreateElement(childNode);
rootNode.AppendChild(childElement);
XmlElement xmlElement = xmlDoc.CreateElement(element);
xmlElement.InnerText = content;
childElement.AppendChild(xmlElement);
if (isSave) Save();
} /// <summary>
/// 插入一个节点,带一属性。
/// </summary>
/// <param name="mainNode">待插入的父节点名称(带路径)</param>
/// <param name="element">待插入的节点名称</param>
/// <param name="attrib">待插入的节点属性名称</param>
/// <param name="attribContent">待插入的节点属性内容</param>
/// <param name="content">待插入的节点内容</param>
/// <param name="isSave">是否保存,true为保存,false为不保存</param>
public void InsertElement(string mainNode, string element, string attrib, string attribContent, string content,bool isSave)
{
XmlNode node = xmlDoc.SelectSingleNode(mainNode);
if (!IsExist(node))
{
return;
}
XmlElement xmlElement = xmlDoc.CreateElement(element);
xmlElement.SetAttribute(attrib, attribContent);
xmlElement.InnerText = content;
node.AppendChild(xmlElement);
if (isSave) Save();
} /// <summary>
/// 插入一个节点,不带属性。
/// </summary>
/// <param name="parentNodeName">待插入的父节点名称(带路径)</param>
/// <param name="element">待插入的节点名称</param>
/// <param name="content">待插入的节点内容</param>
/// <param name="isSave">是否保存,true为保存,false为不保存</param>
public void InsertElement(string parentNodeName, string nodeName, string nodeContent, bool isSave)
{
XmlNode node = xmlDoc.SelectSingleNode(parentNodeName);
if (!IsExist(node))
{
return;
}
XmlElement xmlElement = xmlDoc.CreateElement(nodeName);
xmlElement.InnerText = nodeContent;
node.AppendChild(xmlElement);
if (isSave) Save();
} /// <summary>
/// 保存文档。
/// </summary>
public void Save()
{
CheckManager checkManager = new CheckManager();
checkManager.AddChecker(new CheckFileExists(xmlFile));
checkManager.AddChecker(new CheckFileUsing(xmlFile));
if (checkManager.Check())
{
xmlDoc.Save(xmlFile);
}
} /// <summary>
/// 判断节点是否存在
/// </summary>
/// <param name="node">节点名称</param>
/// <returns></returns>
public bool IsExist(XmlNode node)
{
if (node != null) return true;
else return false;
} /// <summary>
/// 判断节点是否存在
/// </summary>
/// <param name="nodeName">节点名称</param>
/// <param name="isParent"></param>
/// <returns></returns>
public bool IsExist(string nodeName)
{
XmlNode node = xmlDoc.SelectSingleNode(nodeName);
return IsExist(node);
}
}
}
<id>5 </id>
<firstname>yoyo </firstname>
<age>18 </age>
</newNode>
<newNode>
<id>8</id>
<firstname>yo </firstname>
<age>18 </age>
</newNode>
也许我的XML不只一个记录 。。我怎么让它都获取出来。。获取出来就赋值一下。。直到全部结束为止!