XML文档对象模型----使用XmlNodeReader
2006-12-06 19:16
716 查看
如何使用 XmlNodeReader
此示例阐释如何创建和使用 XmlNodeReader。XmlNodeReader 是一种读取器,可提供对 XmlNode 中的 XML 数据的快速、非缓存和只进的访问。它能够读取整个 XML DOM 树,或只从子树读取。然而,XmlNodeReader 不支持文档类型定义 (DTD) 或架构验证,因此不验证它读取的 XML。此示例将 books.xml 加载到 XmlDocument 中,然后使用 XmlNodeReader 获取每个节点以及它们各自的值,以将这些值显示在屏幕上。
|
function doClick(index, numTabs, id) {
document.all("tab" + id, index).className = "tab";
for (var i=1; i
td.code {
padding:0,10,0,10;
border-style:solid;
border-width:1;
border-bottom:0;
border-top:0;
border-right:0;
border-color:cccccc;
background-color:ffffee
}
td.tab {
text-align:center;
font:8pt verdana;
width:15%;
padding:3,3,3,3;
border-style:solid;
border-width:1;
border-right:0;
border-color:black;
background-color:eeeeee;
cursor:hand
}
td.backtab {
text-align:center;
font: 8pt verdana;
width:15%;
padding:3,3,3,3;
border-style:solid;
border-width:1;
border-right:0;
border-color:black;
background-color:cccccc;
cursor:hand
}
td.space {
width:70%;
font: 8pt verdana;
padding:0,0,0,0;
border-style:solid;
border-bottom:0;
border-right:0;
border-width:1;
border-color:cccccc;
border-left-color:black;
background-color:white
}
XmlDocument myXmlDocument = new XmlDocument(); myXmlDocument.Load (arg); ... XmlNodeReader myXmlNodeReader = new XmlNodeReader (myXmlDocument.SelectSingleNode("bookstore/book[3]")); FormatXml (myXmlNodeReader); ... myXmlNodeReader = new XmlNodeReader (myXmlDocument.SelectSingleNode("bookstore/book[2]")); myXmlNodeReader.Read(); Console.WriteLine (myXmlNodeReader.ReadInnerXml()); Dim myXmlDocument as XmlDocument = new XmlDocument() myXmlDocument.Load (arg) ... Dim myXmlNodeReader as XmlNodeReader = new XmlNodeReader (myXmlDocument.SelectSingleNode("bookstore/book[3]")) FormatXml (myXmlNodeReader) ... myXmlNodeReader = new XmlNodeReader (myXmlDocument.SelectSingleNode("bookstore/book[2]")) myXmlNodeReader.Read() Console.WriteLine (myXmlNodeReader.ReadInnerXml()) | ||
C# | VB |
private static void FormatXml (XmlNodeReader reader) { while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.ProcessingInstruction: Format (reader, "ProcessingInstruction"); break; case XmlNodeType.DocumentType: Format (reader, "DocumentType"); break; case XmlNodeType.Document: Format (reader, "Document"); break; case XmlNodeType.Comment: Format (reader, "Comment"); break; case XmlNodeType.Element: Format (reader, "Element"); while(reader.MoveToNextAttribute()) { Format (reader, "Attribute"); } break; case XmlNodeType.Text: Format (reader, "Text"); break; case XmlNodeType.Whitespace: Format (reader, "Whitespace"); break; } } } // Format the output private static void Format(XmlNodeReader reader, String NodeType) { // Format the output for (int i=0; i < reader.Depth; i++) { Console.Write('\t'); } Console.Write(NodeType + "<" + reader.Name + ">" + reader.Value); Console.WriteLine(); } private sub FormatXml (reader as XmlNodeReader) while (reader.Read()) select case reader.NodeType case XmlNodeType.ProcessingInstruction: Format (reader, "ProcessingInstruction") case XmlNodeType.DocumentType: Format (reader, "DocumentType") case XmlNodeType.Document: Format (reader, "Document") case XmlNodeType.Comment: Format (reader, "Comment") case XmlNodeType.Element: Format (reader, "Element") while (reader.MoveToNextAttribute()) Format (reader, "Attribute") end while case XmlNodeType.Text: Format (reader, "Text") case XmlNodeType.Whitespace: Format (reader, "Whitespace") end select end while end sub 'Format the output private sub Format (reader as XmlNodeReader, NodeType as String) Dim value as String = System.String.Empty Dim i as long for i=0 to (reader.Depth - 1) Console.Write(Chr(9)) Next if (reader.HasValue) value = reader.Value end if Console.WriteLine(NodeType & "<" & reader.Name & ">" + value) end sub | ||
C# | VB |
摘要
XmlNodeReader 是提供对 XmlNode 中的 XML 数据进行快速、非缓存和只进的访问的读取器。因为也可使用 XmlDocument 中的任何 XmlNode 构造 XmlNodeReader,所以 XmlNodeReader 可提供只读取给定节点的子树的读取器。
相关文章推荐
- XML 文档对象模型----加载和使用XmlDocument (w3c DOM)
- Android -使用DOM(文档对象模型)解析XML文件
- Android -使用DOM(文档对象模型)解析XML文件
- Android -使用DOM(文档对象模型)解析XML文件
- XML文档对象模型
- Java根据文档对象模型解析XML
- 文档对象模型操作xml文档
- 在JAVA中使用文档对象模型DOM经验小结[转载]
- 在JAVA中使用文档对象模型DOM经验小结
- XML文档对象模型
- 使用 Excel 2003 对象模型添加 XML 数据集成 (From MSDN)
- 如何查找和使用 Office 对象模型文档
- XML之文档对象模型DOM(上)
- 通过使用浏览器对象模型,输出当前浏览器窗口中打开的文档的URL信息,并将显示在窗口中。
- XML 文档对象模型 (DOM)细说
- 将一段符合xml标准的string转换成xml文档中的element对象(使用dom4j)
- 使用MyBatis Generator自动创建表对应的dao层接口、模型层对象、sql语句的xml文件
- 在JAVA中使用文档对象模型DOM经验小结[转载]
- 递归打印XML文档树-使用w3cDOM模型解析
- XML 文档对象模型 (DOM) 层次结构