8
0
Files
Skriptentwickung/knowlegbase/XML Händling/Entwicklung/xmldemo.ps1
2024-01-24 16:42:38 +01:00

65 lines
2.1 KiB
PowerShell

# this is where the document will be saved:
$Path = "E:\DB-XML-Test\inventory.xml"
# get an XMLTextWriter to create the XML
$XmlWriter = New-Object System.XMl.XmlTextWriter($Path,$Null)
# choose a pretty formatting:
$xmlWriter.Formatting = 'Indented'
$xmlWriter.Indentation = 1
$XmlWriter.IndentChar = "`t"
# write the header
$xmlWriter.WriteStartDocument()
# set XSL statements
$xmlWriter.WriteProcessingInstruction("xml-stylesheet", "type='text/xsl' href='style.xsl'")
# create root element "machines" and add some attributes to it
$XmlWriter.WriteComment('List of machines')
$xmlWriter.WriteStartElement('Machines')
$XmlWriter.WriteAttributeString('current', $true)
$XmlWriter.WriteAttributeString('manager', 'Tobias')
# add a couple of random entries
for($x=1; $x -le 10; $x++)
{
$server = 'Server{0:0000}' -f $x
$ip = '{0}.{1}.{2}.{3}' -f (0..256 | Get-Random -Count 4)
$guid = [System.GUID]::NewGuid().ToString()
# each data set is called "machine", add a random attribute to it:
$XmlWriter.WriteComment("$x. machine details")
$xmlWriter.WriteStartElement('Machine')
$XmlWriter.WriteAttributeString('test', (Get-Random))
# add three pieces of information:
$xmlWriter.WriteElementString('Name',$server)
$xmlWriter.WriteElementString('IP',$ip)
$xmlWriter.WriteElementString('GUID',$guid)
# add a node with attributes and content:
$XmlWriter.WriteStartElement('Information')
$XmlWriter.WriteAttributeString('info1', 'some info')
$XmlWriter.WriteAttributeString('info2', 'more info')
$XmlWriter.WriteRaw('RawContent')
$xmlWriter.WriteEndElement()
# add a node with CDATA section:
$XmlWriter.WriteStartElement('CodeSegment')
$XmlWriter.WriteAttributeString('info3', 'another attribute')
$XmlWriter.WriteCData('this is untouched code and can contain special characters /\@<>')
$xmlWriter.WriteEndElement()
# close the "machine" node:
$xmlWriter.WriteEndElement()
}
# close the "machines" node:
$xmlWriter.WriteEndElement()
# finalize the document:
$xmlWriter.WriteEndDocument()
$xmlWriter.Flush()
$xmlWriter.Close()