Rumah > pembangunan bahagian belakang > Tutorial XML/RSS > 详细介绍使用XmlWriter写Xml的示例代码

详细介绍使用XmlWriter写Xml的示例代码

黄舟
Lepaskan: 2017-03-09 16:51:30
asal
2691 orang telah melayarinya

假定创建了XmlWriter的实例变量xmlWriter,下文中将使用此实例变量写Xml

1.如何使用XmlWriter写Xml文档声明

1

2

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

xmlWriter.WriteStartDocument(false|true);

Salin selepas log masuk

注意在使用WriteStartDocument方法后最好调用xmlWrite.WriteEndDocument()方法来关闭所有可能未关闭标签
2.如何使用XmlWriter写xml节点以及属性

1

2

3

4

5

6

7

//写节点

xmlWriter.WriteStartElement("cat");

//给节点添加属性

xmlWriter.WriteAttributeString("color", "white");

//给节点内部添加文本

xmlWriter.WriteString("I'm a cat");

xmlWriter.WriteEndElement();

Salin selepas log masuk

或者通过WriteElementString(string,string)方法写xml节点同时写下节点值,如下

1

2

//通过WriteElementString可以添加一个节点同时添加节点内容

xmlWriter.WriteElementString("pig", "pig is great");

Salin selepas log masuk

3.如何写CData

1

2

3

4

xmlWriter.WriteStartElement("dog");

//写CData

xmlWriter.WriteCData("<strong>dog is dog</strong>");

xmlWriter.WriteEndElement();

Salin selepas log masuk

4.如何使用XmlWriter添加注释

1

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

Salin selepas log masuk

5.如何设置XmlWriter的输出格式,解决输出UTF-16问题
设置xml输出格式,需要通过XmlWriterSettings类,如下代码

1

2

3

4

5

6

7

8

9

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;

Salin selepas log masuk


完整的代码示例如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

/*玉开技术博客 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文件开始<!--?xml version="1.0" encoding="utf-8" ?-->

                    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("<strong>dog is dog</strong>");

                    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();

 

        }

    }

}

Salin selepas log masuk



Atas ialah kandungan terperinci 详细介绍使用XmlWriter写Xml的示例代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan