缩进
我们可以通过三个步骤来改变文档缩进格式。首先,我们使用XmlTextWriter类。这个类包含一系列属性如:Formatting、Indentation、和IndentChar。
首先我们使用Formatting属性来设置XML文档缩进或者来判断其是否需要缩进。解析器会自动在XML文档中加入缩进,以方便我们更容易的通过文本编辑器查看XML文档。
Indentation 属性用来设定每次要缩进多少个空格。默认值是缩进两个空格。
IndentChar属性可以允许我们在解析器进行缩进使用其他字符代替默认的空格缩进符。当然,虽然有的字符在你的XML文档中不起作用,不过在调试或者其他过程中就不一定了,因此最好小心使用这个属性。
列表C是我们在开始代码的基础上应用了这三个属性的代码。我们在代码中指定要对输入文档进行缩进(不像列表B那样都堆在一起);并且指定缩进四个字符;缩进字符我们使用默认的空格符。
Listing C
xmlWriter = New XmlTextWriter(filename, Nothing)
xmlWriter.Formatting = Formatting.Indented
xmlWriter.Indentation = 4
xmlWriter.IndentChar = " "c
xmlWriter.WriteStartElement("Order")
xmlWriter.WriteStartElement("Item")
xmlWriter.WriteAttributeString("id", "1")
xmlWriter.WriteElementString("SKU", "998123")
xmlWriter.WriteElementString("Description", "Super Widget")
xmlWriter.WriteElementString("Quantity", "100")
xmlWriter.WriteEndElement()
xmlWriter.WriteStartElement("Item")
xmlWriter.WriteAttributeString("id", "2")
xmlWriter.WriteElementString("SKU", "81312")
xmlWriter.WriteElementString("Description", "Turbo Flangellator")
xmlWriter.WriteElementString("Quantity", "50")
xmlWriter.WriteEndElement()
xmlWriter.WriteEndElement()
xmlWriter.Close()
列表D就是输出结果:
Listing D: sample2.xml
<Order>
<Item id="1">
<SKU>998123</SKU>
<Description>Super Widget</Description>
<Quantity>100</Quantity>
</Item>
<Item id="2">
<SKU>81312</SKU>
<Description>Turbo Flangellator</Description>
<Quantity>50</Quantity>
</Item>
</Order>
引用
除了缩进之外,你还可以修改引用方式。QuoteChar属性可以允许你调整引用字符串的符号。默认的是双引号,你也可以将它修改成单引号。QuoteChar可以让你选择引号字符,然而和IndentChar一样,你必须注意新修改的字符不能在XML文档中产生任何副作用。
编码
你可以设置输出文档的编码格式。这不是通过设置属性来实现的,相反,你需要在XmlTextWriter类的构造器中指定编码方式。在System.Text.Encoding中可用的编码都可以被使用。具体值如下:
- System.Text.Encoding.ASCII
- System.Text.Encoding.BigEndianUnicode
- System.Text.Encoding.Default
- System.Text.Encoding.Unicode
- System.Text.Encoding.UTF7
- System.Text.Encoding.UTF8
大多数时候,你只需要使用默认的编码方式就可以了。不过有时候你需要自己设置编码,这取决于你将要把文档发送到哪里。
本文作者Brian Schaffner是富士通咨询公司的副主任。他为富士通的技术咨询公司提供架构、设计和开发支持。
责任编辑:李宁
欢迎评论或投稿
|