从Read-host中的多个值创建TextNode

时间:2015-12-18 16:55:21

标签: xml api powershell url xmldocument

对于Powershell - 有没有办法轻松地从Read-host中获取值并将它们与创建的XML标记分开?例如,这是我正在处理的脚本:

$Response = 'Y'
$URLName = $Null
$SecondURLName = @()

# Enter URL

do {
    [array]$URLName = Read-Host "Please enter the URL (Example:  www.example.com)" 
    $Response = Read-Host 'Do you want to add more URLs? (y/n)'
    $SecondURLName += $URLName
}
Until ($Response -eq 'n')

# Create a new XML File with member root node
$XMLDocument=New-Object System.XML.XMLDocument

# New Node
$MemberRoot=$XMLDocument.CreateElement("url")

# Append as child to an existing node
$XMLDocument.appendChild($MemberRoot)

# Add URL to member Node
$XMLEntry=$MemberRoot.appendChild($XMLDocument.CreateTextNode("$SecondURLName"))

# Save File 
$XMLDocument.Save("urls.xml")

在两个Read-Host输入下,如果我要输入2个值,例如" website.com"和" website2.com",它将生成xml文档如下:

<url>website.com website2.com</url>

我试图瞄准的是xml文档中的以下结果:

<url>website.com</url>
<url>website2.com</url>

必须有一种更简单的方法将值与读取主机分开,并在xml文档中单独格式化它们。任何提示?

1 个答案:

答案 0 :(得分:0)

我认为你必须在foreach循环中包装脚本的后半部分,因为你的$ SecondURLName变量

$SecondURLName = @('website.com', 'website2.com')

$SecondURLName

"$SecondURLName"

foreach ($line in $SecondURLName ) { $line }

foreach ($line in $SecondURLName ) { "$line" }