>백엔드 개발 >XML/RSS 튜토리얼 >XmlWriter를 사용하여 Xml을 작성하기 위한 샘플 코드에 대한 자세한 소개

XmlWriter를 사용하여 Xml을 작성하기 위한 샘플 코드에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-09 16:51:302621검색

XmlWriter의 인스턴스 변수 xmlWriter가 생성되었다고 가정합니다.

1. XmlWriter를 사용하여 Xml 문서 선언을 작성하는 방법

// WriteStartDocument方法可以接受一个bool参数(表示standalone,是否为独立文档)或者不指定参数standalone保持默认值
xmlWriter.WriteStartDocument(false|true);

WriteStartDocument 메서드를 사용한 후에는 xmlWrite.WriteEndDocument() 메서드를 호출하여 닫히지 않은 가능한 모든 태그를 닫는 것이 가장 좋습니다
2. XmlWriter를 사용하여 xml 노드 및 속성을 작성하는 방법

//写节点
xmlWriter.WriteStartElement("cat");
//给节点添加属性
xmlWriter.WriteAttributeString("color", "white");
//给节点内部添加文本
xmlWriter.WriteString("I'm a cat");
xmlWriter.WriteEndElement();

또는 WriteElementString(string,string) 메서드를 통해 xml 노드를 작성하고 노드를 작성합니다. 값은 다음과 같습니다

//通过WriteElementString可以添加一个节点同时添加节点内容
xmlWriter.WriteElementString("pig", "pig is great");

3. CData 작성 방법

xmlWriter.WriteStartElement("dog");
//写CData
xmlWriter.WriteCData("<strong>dog is dog</strong>");
xmlWriter.WriteEndElement();

4. XmlWriter를 사용하여 댓글을 추가하는 방법

xmlWriter.WriteComment("this is an example writed by 玉开技术博客 http://www.php.cn/ ");

5. UTF-16 출력 문제 해결
xml 출력 형식 설정, XmlWriterSettings 클래스, 다음 코드

XmlWriterSettings settings = new XmlWriterSettings();
//要求缩进
settings.Indent = true;
//注意如果不设置encoding默认将输出utf-16
//注意这儿不能直接用Encoding.UTF8如果用Encoding.UTF8将在输出文本的最前面添加4个字节的非xml内容
settings.Encoding = new UTF8Encoding(false);
                
//设置换行符
settings.NewLineChars = Environment.NewLine;

를 전달해야 합니다.

전체 코드 예는 다음과 같습니다.


/*玉开技术博客 http://www.php.cn/ */
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;

namespace UseXmlWriter
{
    class Program
    {
        static void Main(string[] args)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                XmlWriterSettings settings = new XmlWriterSettings();
                //要求缩进
                settings.Indent = true;
                //注意如果不设置encoding默认将输出utf-16
                //注意这儿不能直接用Encoding.UTF8如果用Encoding.UTF8将在输出文本的最前面添加4个字节的非xml内容
                settings.Encoding = new UTF8Encoding(false);
                
                //设置换行符
                settings.NewLineChars = Environment.NewLine;

                using (XmlWriter xmlWriter = XmlWriter.Create(ms, settings))
                {

                    //写xml文件开始
                    xmlWriter.WriteStartDocument(false);
                    //写根节点
                    xmlWriter.WriteStartElement("root");
                    //写字节点
                    xmlWriter.WriteStartElement("cat");
                    //给节点添加属性
                    xmlWriter.WriteAttributeString("color", "white");
                    //给节点内部添加文本
                    xmlWriter.WriteString("I'm a cat");
                    xmlWriter.WriteEndElement();


                    //通过WriteElementString可以添加一个节点同时添加节点内容
                    xmlWriter.WriteElementString("pig", "pig is great");


                    xmlWriter.WriteStartElement("dog");
                    //写CData
                    xmlWriter.WriteCData("dog is dog");
                    xmlWriter.WriteEndElement();

                    xmlWriter.WriteComment("this is an example writed by 玉开技术博客 http://www.php.cn/ ");

                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndDocument();

                }

                //将xml内容输出到控制台中
                string xml = Encoding.UTF8.GetString(ms.ToArray());
                Console.WriteLine(xml);
            }
            Console.Read();

        }
    }
}



위 내용은 XmlWriter를 사용하여 Xml을 작성하기 위한 샘플 코드에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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