读取xml文件
<!DOCTYPE html>
<html>
<head>
<title></title>
<script>
function readxml() {
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "XMLFile1.xml", false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
document.write("<table border='1'>");
var x = xmlDoc.getElementsByTagName("CD");
for (i = 0; i < x.length; i++) {
document.write("<tr><td>");
document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("PRICE")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}
document.write("</table>");
}
</script>
</head>
<body>
<input id="Button1" type="button" value="button" οnclick="readxml()" />
</body>
</html>
//1: xn 代表一个结点
//2: xn.Name;//这个结点的名称
//3: xn.Value;//这个结点的值
//4: xn.ChildNodes;//这个结点的所有子结点
//5: xn.ParentNode;//这个结点的父结点
XmlDocument xmlDoc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;//忽略文档里面的注释
XmlReader reader = XmlReader.Create(savePath, settings);
xmlDoc.Load(reader);
// 得到根节点bookstore
XmlNode xn = xmlDoc.SelectSingleNode("bookstore");
// 得到根节点的所有子节点
XmlNodeList xnl = xn.ChildNodes;
List<BookXmlModel> bookxml = new List<BookXmlModel>();
foreach (XmlNode xn1 in xnl)
{
Andu.Model.BookXmlModel bookModel = new BookXmlModel();
// 将节点转换为元素,便于得到节点的属性值
XmlElement xe = (XmlElement)xn1;
// 得到Type和ISBN两个属性的属性值
bookModel.BookISBN = xe.GetAttribute("ISBN").ToString();
bookModel.BookType = xe.GetAttribute("Type").ToString();
// 得到Book节点的所有子节点
XmlNodeList xnl0 = xe.ChildNodes;
bookModel.BookName = xnl0.Item(0).InnerText;
bookModel.BookAuthor = xnl0.Item(1).InnerText;
bookModel.BookPrice = Convert.ToDouble(xnl0.Item(2).InnerText);
bookxml.Add(bookModel);
}
Repeater1.DataSource = bookxml;
Repeater1.DataBind();
reader.Close();
<?xml version="1.0" encoding="utf-8"?>
<bookstore>
<!--记录书本的信息-->
<book Type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>严蔚敏</author>
<price>30.00</price>
</book>
<book Type="必修课" ISBN="7-111-19149-3">
<title>路由型与交换型互联网基础</title>
<author>程庆梅</author>
<price>27.00</price>
</book>
<book Type="必修课" ISBN="7-111-19149-4">
<title>计算机硬件技术基础</title>
<author>李继灿</author>
<price>25.00</price>
</book>
<book Type="必修课" ISBN="7-111-19149-5">
<title>软件质量保证与管理</title>
<author>朱少民</author>
<price>39.00</price>
</book>
<book Type="必修课" ISBN="7-111-19149-6">
<title>算法设计与分析</title>
<author>王红梅</author>
<price>23.00</price>
</book>
<book Type="选修课" ISBN="7-111-19149-1">
<title>计算机操作系统</title>
<author>7-111-19149-1</author>
<price>28</price>
</book>
</bookstore>
-------------------
cs文件完整代码
using Andu.Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
namespace Web
{
public partial class WebForm8 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie cookie = new HttpCookie("filexmlc");
//上传xml
string savePath = Server.MapPath("~/upload/");//指定上传文件在服务器上的保存路径
//检查服务器上是否存在这个物理路径,如果不存在则创建
if (!System.IO.Directory.Exists(savePath))
{
System.IO.Directory.CreateDirectory(savePath);
}
if (FileUpload1.HasFile)
{
//获取上传文件的后缀(包括.)
string fileExtension = Path.GetExtension(this.FileUpload1.FileName).ToLower();
string filename = DateTime.Now.ToString("yyyyMMddHHmmss") + fileExtension;
savePath = savePath + filename;
FileUpload1.SaveAs(savePath);
string aller = string.Format("<a href='upload/{0}'>upload/{0}</a>", filename);
Response.Write(aller);
cookie.Value = savePath;
Response.AppendCookie(cookie);
}
else
{
Response.Write("你还没有选择上传文件!");
}
//return;
//todo
//if (File.Exists(savePath))
//{
// File.Delete(savePath);
//}
//return;
//1: xn 代表一个结点
//2: xn.Name;//这个结点的名称
//3: xn.Value;//这个结点的值
//4: xn.ChildNodes;//这个结点的所有子结点
//5: xn.ParentNode;//这个结点的父结点
XmlDocument xmlDoc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;//忽略文档里面的注释
XmlReader reader = XmlReader.Create(savePath, settings);
xmlDoc.Load(reader);
// 得到根节点bookstore
XmlNode xn = xmlDoc.SelectSingleNode("bookstore");
// 得到根节点的所有子节点book
XmlNodeList xnl = xn.ChildNodes;
List<BookXmlModel> bookxml = new List<BookXmlModel>();
foreach (XmlNode xn1 in xnl)
{
Andu.Model.BookXmlModel bookModel = new BookXmlModel();
// 将节点转换为元素,便于得到节点的属性值
XmlElement xe = (XmlElement)xn1;
// 得到Type和ISBN两个属性的属性值
bookModel.BookISBN = xe.GetAttribute("ISBN").ToString();
bookModel.BookType = xe.GetAttribute("Type").ToString();
// 得到Book节点的所有子节点
XmlNodeList xnl0 = xe.ChildNodes;
bookModel.BookName = xnl0.Item(0).InnerText;
bookModel.BookAuthor = xnl0.Item(1).InnerText;
bookModel.BookPrice = Convert.ToDouble(xnl0.Item(2).InnerText);
bookxml.Add(bookModel);
}
Repeater1.DataSource = bookxml;
Repeater1.DataBind();
reader.Close();
}
protected void Button2_Click(object sender, EventArgs e)
{
HttpCookie cookie = Request.Cookies["filexmlc"];
string filename = cookie.Value;
string BookISBN = TextBox1.Text.Trim();
string BookType = TextBox2.Text.Trim();
string BookName = TextBox3.Text.Trim();
string BookAuthor = TextBox4.Text.Trim();
string BookPrice = TextBox5.Text.Trim();
if (File.Exists(filename))
{
XmlDocument xmlDoc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;//忽略文档里面的注释
XmlReader reader = XmlReader.Create(filename, settings);
xmlDoc.Load(reader);
XmlNode root = xmlDoc.SelectSingleNode("bookstore");
XmlElement xelKey = xmlDoc.CreateElement("book");
XmlAttribute xelType = xmlDoc.CreateAttribute("Type");
xelType.InnerText = BookType;
xelKey.SetAttributeNode(xelType);
XmlAttribute xelISBN = xmlDoc.CreateAttribute("ISBN");
xelISBN.InnerText = BookISBN;
xelKey.SetAttributeNode(xelISBN);
XmlElement xeltitle = xmlDoc.CreateElement("title");
xeltitle.InnerText = BookName;
xelKey.AppendChild(xeltitle);
XmlElement xelAuthor = xmlDoc.CreateElement("author");
xelAuthor.InnerText = BookAuthor;
xelKey.AppendChild(xelAuthor);
XmlElement xelprice = xmlDoc.CreateElement("price");
xelprice.InnerText = BookPrice;
xelKey.AppendChild(xelprice);
root.AppendChild(xelKey);
//
reader.Close();
xmlDoc.Save(filename);
//cookie.Value = filename;
//Response.AppendCookie(cookie);
// 得到根节点bookstore
XmlNode xn = xmlDoc.SelectSingleNode("bookstore");
// 得到根节点的所有子节点
XmlNodeList xnl = xn.ChildNodes;
List<BookXmlModel> bookxml = new List<BookXmlModel>();
foreach (XmlNode xn1 in xnl)
{
Andu.Model.BookXmlModel bookModel = new BookXmlModel();
// 将节点转换为元素,便于得到节点的属性值
XmlElement xe = (XmlElement)xn1;
// 得到Type和ISBN两个属性的属性值
bookModel.BookISBN = xe.GetAttribute("ISBN").ToString();
bookModel.BookType = xe.GetAttribute("Type").ToString();
// 得到Book节点的所有子节点
XmlNodeList xnl0 = xe.ChildNodes;
bookModel.BookName = xnl0.Item(0).InnerText;
bookModel.BookAuthor = xnl0.Item(1).InnerText;
bookModel.BookPrice = Convert.ToDouble(xnl0.Item(2).InnerText);
bookxml.Add(bookModel);
}
Repeater1.DataSource = bookxml;
Repeater1.DataBind();
reader.Close();
//if (File.Exists(savePath))
//{
// File.Delete(savePath);
//}
}
else
{
Response.Write("你还没有选择上传文件22!");
}
}
}
}