>  기사  >  백엔드 개발  >  XmlReader를 사용하여 xml 파일을 읽는 코드 예제에 대한 자세한 소개

XmlReader를 사용하여 xml 파일을 읽는 코드 예제에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-21 16:59:102098검색

.net 개발에서는 xml 형식의 파일을 읽고 써야 하는 경우가 많습니다(app.config 및 web.config는 각각 WinForm 및 WebForm에서 사용되는 xml 파일의 특수 열이며, Microsoft는 일반적인 방법을 여기서 설명하지 않습니다.) .net 클래스 라이브러리는 xml 파일을 읽고 쓰는 다양한 방법을 제공합니다. 각 방법에는 장점과 단점이 있으므로 실용성이 있습니다.

다음은 Microsoft.net 클래스 라이브러리에서 제공하는 XML 파일 읽기 및 쓰기 클래스 목록과 해당 특성입니다.

tbody>

类名称

优点

缺点

XmlReader

快速、高效、可扩展

只读,只向前,需要人工验证

XmlDocument

可往返、可读写、支持XPath筛选

比XmlReader慢

XPathNavigator

可往返,支持XPath和XSLT

只读

XPathDocument

比XmlDocument,优化支持XPath和XSLT

比XmlReader慢

클래스 이름

장점


단점

XmlReader

빠르고 효율적이며 확장 가능

읽기 전용, 앞으로 단, 수동 확인 필요

    XmlDocument
왕복, 읽기 및 쓰기 가능, XPath필터링 XmlReader보다 느림
XPathNavigator 왕복 가능, XPath 및 XSLT 읽기 전용
XPathDocument XmlDocument와 비교, XPath 및 XSLT 지원에 최적화 XmlReader보다 느림
이 기사에서 언급한 XmlReader는 Microsoft 클래스 라이브러리의 클래스이기도 하며 빠르고 효율적이며 확장성이 있다는 것이 특징입니다. 읽기 전용. 다음 예에서는 XmlReader의 사용법을 보여줍니다. (1) 사용된 XML 파일: meu.xml
<?xml version="1.0" encoding="utf-8" ?>
<Menus>
  <Menu title="常用网址">
    <item name="天下网" url="http://www.netskycn.com" id="1"/>
    <item name="天下网生活论坛" url="http://l
if
e.netskycn.com" id="2"/>
    <item name="csdn" url="http://www.csdn.net" id="3"/>
    <item name="我的博客" url="http://blog.csdn.net/zhoufoxcn" id="4"/>
    <item name="百度" url="http://www.baidu.com" id="5"/>
    <item name="Google" url="http://www.google.cn" id="6"/>
    <item name="微软" url="http://www.microsoft.com" id="7"/>
  </Menu>
  <Menu title="娱乐网址">
    <item name="奇虎" url="http://www.qihoo.com" id="12"/>
    <item name="网易" url="http://www.163.com" id="13"/>
    <item name="天涯" url="http://www.tianya.cn" id="14"/>
  </Menu>
  <Menu title="
安全
网址">
    <item name="360" url="http://www.safe360.com" id="15"/>
    <item name="瑞星" url="http://www.rising.com.cn" id="16"/>  
  </Menu>
</Menus>
(2) 읽기 및 표시: ReadXml.aspx
<?xml version="1.0" encoding="utf-8" ?>
<Menus>
  <Menu title="常用网址">
    <item name="天下网" url="http://www.netskycn.com" id="1"/>
    <item name="天下网生活论坛" url="http://life.netskycn.com" id="2"/>
    <item name="csdn" url="http://www.csdn.net" id="3"/>
    <item name="我的博客" url="http://blog.csdn.net/zhoufoxcn" id="4"/>
    <item name="百度" url="http://www.baidu.com" id="5"/>
    <item name="Google" url="http://www.google.cn" id="6"/>
    <item name="微软" url="http://www.microsoft.com" id="7"/>
  </Menu>
  <Menu title="娱乐网址">
    <item name="奇虎" url="http://www.qihoo.com" id="12"/>
    <item name="网易" url="http://www.163.com" id="13"/>
    <item name="天涯" url="http://www.tianya.cn" id="14"/>
  </Menu>
  <Menu title="安全网址">
    <item name="360" url="http://www.safe360.com" id="15"/>
    <item name="瑞星" url="http://www.rising.com.cn" id="16"/>  
  </Menu>
</Menus>

(二)读取并显示:ReadXml.aspx

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System.Xml" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>XMLReader实例</title>
</head>
<body>
<script runat="server">


protected void Page_Load(Object Src, EventArgs E)
{
  if (!IsPostBack) 
  {
      XmlReader xmlReader = XmlReader.Create(Server.MapPath("Menu.xml"));
            while (xmlReader.Read())
            {
                Response.Write("<li>节点类型:" + xmlReader.NodeType + "==<br>");
                switch (xmlReader.NodeType)
                {
                    case XmlNodeType.XmlDeclaration:
                        for (int i = 0; i < xmlReader.AttributeCount; i++)
                        {
                            xmlReader.MoveToAttribute(i);
                            Response.Write("属性:" + xmlReader.Name + "=" + xmlReader.Value+" ");
                        }
                        break;
                    case XmlNodeType.Attribute:
                        for (int i = 0; i < xmlReader.AttributeCount; i++)
                        {
                            xmlReader.MoveToAttribute(i);
                            Response.Write("属性:" + xmlReader.Name + "=" + xmlReader.Value+" ");
                        }
                        break;
                    case XmlNodeType.CDATA:
                        Response.Write("CDATA:" + xmlReader.Value+" ");
                        break;
                    case XmlNodeType.Element:
                        Response.Write("节点名称:" + xmlReader.LocalName+"<br>");
                        for (int i = 0; i < xmlReader.AttributeCount; i++)
                        {
                            xmlReader.MoveToAttribute(i);
                            Response.Write("属性:" + xmlReader.Name + "=" + xmlReader.Value+" ");
                        }
                        break;
                    case XmlNodeType.Comment:
                        Response.Write("Comment:" + xmlReader.Value);
                        break;
                    case XmlNodeType.Whitespace:
                        Response.Write("Whitespace:" + " ");
                        break;
                    case XmlNodeType.ProcessingInstruction:
                        Response.Write("ProcessingInstruction:" + xmlReader.Value);
                        break;
                    case XmlNodeType.Text:
                        Response.Write("Text:" + xmlReader.Value);
                        break;
                }
            }
            xmlReader.Close();
  }
}
</script>
</body>
</html>
특수사항: menu.xml과 ReadXml.aspx 파일은 같은 폴더에 있습니다. 실제 상황이 이와 일치하지 않는 경우 실제 상황에 맞게 변경하세요. 다음은 출력입니다:
节点类型:XmlDeclaration==属性:version=1.0 属性:encoding=utf-8 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:Menus
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:Menu属性:title=常用网址 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=天下网 属性:url=http://www.netskycn.com 属性:id=1 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=天下网生活论坛 属性:url=http://life.netskycn.com 属性:id=2 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=csdn 属性:url=http://www.csdn.net 属性:id=3 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=我的博客 属性:url=http://blog.csdn.net/zhoufoxcn 属性:id=4 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=百度 属性:url=http://www.baidu.com 属性:id=5 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=Google 属性:url=http://www.google.cn 属性:id=6 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=微软 属性:url=http://www.microsoft.com 属性:id=7 
节点类型:Whitespace==Whitespace: 
节点类型:EndElement==
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:Menu属性:title=娱乐网址 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=奇虎 属性:url=http://www.qihoo.com 属性:id=12 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=网易 属性:url=http://www.163.com 属性:id=13 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=天涯 属性:url=http://www.tianya.cn 属性:id=14 
节点类型:Whitespace==Whitespace: 
节点类型:EndElement==
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:Menu属性:title=安全网址 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=360 属性:url=http://www.safe360.com 属性:id=15 
节点类型:Whitespace==Whitespace: 
节点类型:Element==节点名称:item属性:name=瑞星 属性:url=http://www.rising.com.cn 属性:id=16 
节点类型:Whitespace==Whitespace: 
节点类型:EndElement==
节点类型:Whitespace==Whitespace: 
节点类型:EndElement==

위 내용은 XmlReader를 사용하여 xml 파일을 읽는 코드 예제에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.