摘要:通常来说,手动创建XML文档是一个痛苦的过程。源于XML文档的特殊结构,导致手工创建时容易出现错误。手误输入一两个字符,忘记关闭括号,或者没有正确声明空间并且文档不会验证。最好的做法是使用代码来创建XML文档。代码不会出现笨拙的拼写错误,也不会忘记添加细节标签。 |
通常来说,手动创建XML文档是一个痛苦的过程。源于XML文档的特殊结构,导致手工创建时容易出现错误。手误输入一两个字符,忘记关闭括号,或者没有正确声明空间并且文档不会验证。最好的做法是使用代码来创建XML文档。代码不会出现笨拙的拼写错误,也不会忘记添加细节标签。
PowerShell提供了几个创建XML文档的方法。最好的方法之一是使用XMLTextWriter类。其他技术包括将现有的文本文件转换成XML文档。
本文将解释如何创建格式优秀的XML文档。XML文档应该是这样的:
Ford
Taurus
2012
BMW
328i
2015
首先,使用 New-Object实例化XmlTextWriter对象。因为XmlTextWriter对象需要知道在哪里创建XML文件,我们需要将XML文件传递给它的构造函数:
$xmlWriter = New-Object System.XMl.XmlTextWriter('C:\Cars.xml',$Null)
图1. 使用New-Object
如图1所示,创建对象的同事会立即创建XML文件。此时是一个空白文本文件。
因为XML文件更容易阅读,因此我们应该应用格式规则。没有格式化的话,所有节点将被压缩,难以阅读。虽然PowerShell可以读取节点,但对我们来说是不容易的。因此你我喜欢使用制表符缩进。
$xmlWriter.Formatting = 'Indented'
$xmlWriter.Indentation = 1
$XmlWriter.IndentChar = "`t"
然后,创建一个结构良好的XML文件。
$xmlWriter.WriteStartDocument()
接下来,做Carsz注释。
$xmlWriter.WriteComment('Car List')
Then create the root element called Cars.
$xmlWriter.WriteStartElement('Cars')
接下来,使用WriteAttributeString()方法设置XML属性。然后创建Owner属性表示谁拥有这些汽车。
$XmlWriter.WriteAttributeString('Owner', 'Jay Leno')
创建根元素后,使用WriteStartElement()添加两个元素(cars)。这会告诉PowerShell,我们现在将会添加一个新的元素。
$xmlWriter.WriteStartElement('Car')
接下来,将VIN属性添加到第一个Car元素,然后在Car元素内部创建几个节点来代表各种属性。
$xmlWriter.WriteAttributeString('VIN', '123567891')
$xmlWriter.WriteElementString('Make','Ford')
$xmlWriter.WriteElementString('Model','Taurus')
$xmlWriter.WriteElementString('Year','2012')
添加这个Car元素之后,使用WriteEndElement()方法结束这个元素。
$xmlWriter.WriteEndElement()
Now, let's just add another Car element.
$xmlWriter.WriteStartElement('Car')
$xmlWriter.WriteAttributeString('VIN', '123555567891')
$xmlWriter.WriteElementString('Make','BWM')
$xmlWriter.WriteElementString('Model','328i')
$xmlWriter.WriteElementString('Year','2015')
Next, close the root element Cars.
$xmlWriter.WriteEndElement()
最后,关闭文档,清楚任何内部缓冲区并关闭文件流释放控制。
$xmlWriter.WriteEndDocument()
$xmlWriter.Flush()
$xmlWriter.Close()
你现在应该获得了一个良好格式的XML文档。来验证一下吧,我们读取XML文件看看是否一切安好。
图2. 阅读XML文件来验证所有的内容已经添加
如图2所示,版本,注释,Owner属性和两个Car节点都已经添加。成功了!
使用XmlTextWriter来创建XML文档是最好的方法。它可以执行任何你需要做的XML文档,而不必担心任何事情。
责任编辑:DJ编辑