使用PowerShell创建XML文档

日期: 2015-11-19 作者:Adam Bertram翻译:杨旭 来源:TechTarget中国 英文

通常来说,手动创建XML文档是一个痛苦的过程。源于XML文档的特殊结构,导致手工创建时容易出现错误。手误输入一两个字符,忘记关闭括号,或者没有正确声明空间并且文档不会验证。最好的做法是使用代码来创建XML文档。

代码不会出现笨拙的拼写错误,也不会忘记添加细节标签。 PowerShell提供了几个创建XML文档的方法。最好的方法之一是使用XMLTextWriter类。其他技术包括将现有的文本文件转换成XML文档。

本文将解释如何创建格式优秀的XML文档。XML文档应该是这样的: <?xml version=”1.0″?> <!—Car list–……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

通常来说,手动创建XML文档是一个痛苦的过程。源于XML文档的特殊结构,导致手工创建时容易出现错误。手误输入一两个字符,忘记关闭括号,或者没有正确声明空间并且文档不会验证。最好的做法是使用代码来创建XML文档。代码不会出现笨拙的拼写错误,也不会忘记添加细节标签。

PowerShell提供了几个创建XML文档的方法。最好的方法之一是使用XMLTextWriter类。其他技术包括将现有的文本文件转换成XML文档。

本文将解释如何创建格式优秀的XML文档。XML文档应该是这样的:

<?xml version="1.0"?>

<!—Car list-->

<Cars Owner="Jay Leno">

<Car VIN="123567891">

           <Make>Ford</Make>

<Model>Taurus</Model>

<Year>2012</Year>

     </Car>

<Car VIN="123555567891">

           <Make>BMW</Make>

<Model>328i</Model>

<Year>2015</Year>

     </Car>

</Machines>

首先,使用 New-Object实例化XmlTextWriter对象。因为XmlTextWriter对象需要知道在哪里创建XML文件,我们需要将XML文件传递给它的构造函数:

$xmlWriter = New-Object System.XMl.XmlTextWriter('C:Cars.xml',$Null)

图1. 使用New-Object
图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. 阅读XML文件来验证所有的内容已经添加

如图2所示,版本,注释,Owner属性和两个Car节点都已经添加。成功了!

使用XmlTextWriter来创建XML文档是最好的方法。它可以执行任何你需要做的XML文档,而不必担心任何事情。

作者

Adam Bertram
Adam Bertram

自由撰稿人

相关推荐