dim doc new as XmlDocument()
doc.load("c:\read.xlm")
doc.load("c:\read.xlm")
解决方案 »
- WPF中的image怎么实现鼠标事件啊~?
- 在接口变量里面,可以放置结构体么?
- 如何用自定义响应代替WebBrowser或axWebBrowser提交请求之后的响应
- 寻lxcnn与ojlovecd帮忙
- 在compact framwork中add horizontal scroll to listbox遇到的一个Issue...
- 求购<<>c#.net技术内幕>和<<Visual.C-#.编程精彩百例>>电子图书
- .ASPX 遇到繁体WIN7,提交中文字串数据库出现乱码
- WinForm如何多选文件夹~~~求助!!!!
- 安卓平台的POS系统构架
- 自动刷新注册标的修改到程序中
- 如何实现在DataGrid中绑定列id从1排列重新排成1,2,3,4...???
- 如何使用SqlDataReader读取数据?
/// 进行XML读的操作
/// </summary>
public class XmlConfig
{
private XmlDocument doc;
private string xmlFileName; public XmlConfig(string filename)
{
xmlFileName = filename;
doc = new XmlDocument();
try
{
doc.Load(xmlFileName);
}
catch
{
//doc.LoadXml("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
}
} public void Save()
{
try
{
doc.Save(xmlFileName);
}
catch
{
}
} /// <summary>
/// 读XML节点
/// </summary>
/// <param name="key">节点KEY</param>
/// <param name="value">默认值</param>
/// <returns>如节点存在,返回值,否则,返回默认值</returns>
public string Read(string key, string value)
{
XmlNode node = doc.DocumentElement.SelectSingleNode(key);
if (node != null)
return node.InnerText;
else
return value;
} /// <summary>
/// 读XML子节点
/// </summary>
/// <param name="key">父节点值</param>
/// <param name="Childkey">子节点值</param>
/// <param name="value">默认值</param>
/// <returns>如节点存在,返回值,否则,返回默认值</returns>
public string Read(string key,string Childkey,string value)
{
XmlNode node = doc.DocumentElement.SelectSingleNode(key);
if(node!=null)
{
XmlNode node2=node.SelectSingleNode(Childkey);
if(node2!=null)
{
return node2.InnerText;
}
else
return value;
}
else
return value;
}
public XmlNodeList NodeRead()
{
XmlNode node = doc.ChildNodes[1];
XmlNodeList nodelist = node.ChildNodes;
return nodelist;
}
}
{using System;
using System.IO;
using System.Xml;public class ReadXmlStreamSample
{
public static void Main()
{
ReadXmlStreamSample myReadXmlStreamSample = new ReadXmlStreamSample();
myReadXmlStreamSample.Run();
} public void Run()
{
StringReader stream;
XmlTextReader reader = null; try
{
Console.WriteLine ("正在初始化 StringReader ..."); stream = new StringReader("<?xml version='1.0'?>" +
"<!-- 此文件表示书店库存数据库的一个片断 -->" +
"<bookstore>" +
" <book genre=\"autobiography\" publicationdate=\"1981\" ISBN=\"1-861003-11-0\">" +
" <title>The Autobiography of Benjamin Franklin</title>" +
" <author>" +
" <first-name>Benjamin</first-name>" +
" <last-name>Franklin</last-name>" +
" </author>" +
" <price>8.99</price>" +
" </book>" +
" <book genre=\"novel\" publicationdate=\"1967\" ISBN=\"0-201-63361-2\">" +
" <title>The Confidence Man</title>" +
" <author>" +
" <first-name>Herman</first-name>" +
" <last-name>Melville</last-name>" +
" </author>" +
" <price>11.99</price>" +
" </book>" +
" <book genre=\"philosophy\" publicationdate=\"1991\" ISBN=\"1-861001-57-6\">" +
" <title>The Gorgias</title>" +
" <author>" +
" <name>Plato</name>" +
" </author>" +
" <price>9.99</price>" +
" </book>" +
"</bookstore>"); // 从流中加载 XmlTextReader
reader = new XmlTextReader (stream); Console.WriteLine ("正在处理 ...");
Console.WriteLine ();
FormatXml(reader);
} catch (Exception e)
{
Console.WriteLine ("异常:{0}", e.ToString());
} finally
{
Console.WriteLine();
Console.WriteLine("对流的处理已完成。");
// 通过 XmlTextReader 完成
if (reader != null)
reader.Close();
}
}private static void FormatXml (XmlReader reader)
{
int piCount=0, docCount=0, commentCount=0, elementCount=0, attributeCount=0, textCount=0, whitespaceCount=0; while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.ProcessingInstruction:
Format (reader, "ProcessingInstruction");
piCount++;
break;
case XmlNodeType.DocumentType:
Format (reader, "DocumentType");
docCount++;
break;
case XmlNodeType.Comment:
Format (reader, "Comment");
commentCount++;
break;
case XmlNodeType.Element:
Format (reader, "Element");
while(reader.MoveToNextAttribute())
{
Format (reader, "Attribute");
}
elementCount++;
if (reader.HasAttributes)
attributeCount += reader.AttributeCount;
break;
case XmlNodeType.Text:
Format (reader, "Text");
textCount++;
break;
case XmlNodeType.Whitespace:
whitespaceCount++;
break;
}
} // 显示统计信息
Console.WriteLine ();
Console.WriteLine("流的统计信息");
Console.WriteLine ();
Console.WriteLine("处理指令:{0}",piCount++);
Console.WriteLine("文档类型:{0}",docCount++);
Console.WriteLine("注释:{0}",commentCount++);
Console.WriteLine("元素:{0}",elementCount++);
Console.WriteLine("属性:{0}",attributeCount++);
Console.WriteLine("文本:{0}",textCount++);
Console.WriteLine("空白:{0}",whitespaceCount++);
} // 格式化输出
private static void Format(XmlReader reader, String nodeType)
{
// 格式化输出
Console.Write(reader.Depth + " ");
Console.Write(reader.AttributeCount + " ");
for (int i=0; i < reader.Depth; i++)
{
Console.Write('\t');
} Console.Write(nodeType + "<" + reader.Name + ">" + reader.Value);
Console.WriteLine();
}} // 结束类 ReadXmlStreamSample
} // 结束命名空间 HowTo.Samples.XML
using System.IO;
using System.Xml;namespace HowTo.Samples.XML
{public class MultipleXmlReaderSample
{
private const String document = "twopart.xml"; public static void Main()
{
MultipleXmlReaderSample myMultipleXmlReaderSample = new MultipleXmlReaderSample();
myMultipleXmlReaderSample.Run(document);
} public void Run(String args)
{
try
{
//为指定的源文件创建新文件流。
FileStream filestreamSource = new FileStream(args, FileMode.Open, FileAccess.Read);
//用该文件流创建新读取器
XmlTextReader reader = new XmlTextReader(filestreamSource);
//读取 XML 文档的第一部分
while(reader.Read())
{
//显示元素并在 part1 结束元素标记处停止读取
//然后转到 ReadPart2 启动另一个读取器,读取文件的其余部分。
switch(reader.NodeType)
{
case XmlNodeType.Element:
Console.WriteLine("名称:{0}", reader.Name);
Console.WriteLine(" 前缀:{0}", reader.Prefix);
Console.WriteLine(" 本地名称:{0}", reader.LocalName);
Console.WriteLine(" 命名空间:{0}", reader.NamespaceURI);
break;
case XmlNodeType.EndElement:
//用本地名称等于 part1 来停止在元素的结束元素处的读取
if ("part1"==reader.LocalName)
{
Console.WriteLine("终止读取第 1 部分...");
Console.WriteLine();
goto ReadPart2;
}
break;
}
} //读取 XML 文档的其余部分
ReadPart2:
Console.WriteLine("开始读取第 2 部分...");
//创建 XmlNamespaceManager 并为文档添加命名空间。
XmlNamespaceManager nsmanager = new XmlNamespaceManager(reader.NameTable);
//设置默认命名空间,第一个参数为空。
nsmanager.AddNamespace(String.Empty, "http://tempuri.org/mydefaultnamespace");
nsmanager.AddNamespace("myns", "http://tempuri.org/mynamespace");
nsmanager.AddNamespace("yourns", "http://tempuri.org/yournamespace");
XmlParserContext pc = new XmlParserContext(reader.NameTable, nsmanager, reader.XmlLang, XmlSpace.Default); // 将文件流重置到源流的开始处
filestreamSource.Seek(0, SeekOrigin.Begin);
XmlTextReader reader2 = new XmlTextReader(filestreamSource, XmlNodeType.Element, pc); while(reader2.Read())
{
switch (reader2.NodeType)
{
case XmlNodeType.Element:
Console.WriteLine("元素名称:{0}", reader2.Name);
Console.WriteLine(" 前缀:{0}", reader2.Prefix);
Console.WriteLine(" 本地名称:{0}", reader2.LocalName);
Console.WriteLine(" 命名空间:{0}", reader2.NamespaceURI);
break;
case XmlNodeType.EndElement:
//用本地名称等于 part2 来停止在元素的结束元素处的读取
if ("part2"==reader2.LocalName)
{
Console.WriteLine("终止读取第 2 部分...");
goto Done;
}
break;
}
} Done:
Console.WriteLine("完成。");
reader.Close(); }
catch (Exception e)
{
Console.WriteLine ("异常:{0}", e.ToString());
}
}
} // 结束类 MultipleXmlReaderSample
} // 结束命名空间 HowTo.Samples.XML
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Xml;
namespace DocSample1
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.RichTextBox richTextBox1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null; public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent(); //
// TODO: Add any constructor code after InitializeComponent call
//
LoadXml();
} /// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.SuspendLayout();
//
// richTextBox1
//
this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right);
this.richTextBox1.Location = new System.Drawing.Point(3, 2);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(376, 213);
this.richTextBox1.TabIndex = 0;
this.richTextBox1.Text = "richTextBox1";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(389, 293);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.richTextBox1});
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false); }
#endregion /// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
} internal void LoadXml() {
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load(@"c:/read.xml"); XmlNodeList nodes=xmlDoc.SelectNodes("book");
foreach(XmlNode node in nodes) {
richTextBox1.AppendText(node.Name + "\r\n");
foreach(XmlNode childNode in node.ChildNodes) {
richTextBox1.AppendText("\t" + childNode.Name + ":");
richTextBox1.AppendText(childNode.InnerText + "\r\n");
}
}
} private void Form1_Load(object sender, System.EventArgs e)
{
} }
}