单独的 Read-Host 连接字符串,然后添加 XML 标签
Separate Read-Host concatenated string, then add XML tags
我有一个 PowerShell 代码,我在其中尝试将连接的字符串与两个 Read-Hosts
输入分开:
$Response = 'Y'
$URLName = $Null
$SecondURLName = @()
# Enter URL
do {
$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')
用下面添加的相同 XML 标记分隔串联字符串的最佳方法是什么:
# 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")
这是我使用脚本保存在 urls.xml
文件中的当前结果:
<url>thisisfromread-host1.com thisisfromread-host2.com</url>
我需要保存在urls.xml文件中的只有:
<url>thisisfromread-host1.com</url>
<url>thisisfromread-host2.com</url>
一定有一件我没有想到的简单事情。
$SecondURLName
定义为数组,所以需要循环处理。将变量放入字符串 ("$SecondURLName"
) 会将数组元素合并为一个字符串,因此您最终得到一个元素。但是,要附加多个元素,您需要先添加一个根元素,因为 XML 文档不能有多个根元素。
$xml = New-Object System.XML.XMLDocument
$root = $xml.CreateElement('root')
$xml.AppendChild($root) | Out-Null
foreach ($url in $SecondURLName) {
$newNode = $xml.CreateElement('url')
$txt = $xml.CreateTextNode($url)
$newNode.AppendChild($txt) | Out-Null
$root.AppendChild($newNode) | Out-Null
}
$xml.Save('urls.xml')
我有一个 PowerShell 代码,我在其中尝试将连接的字符串与两个 Read-Hosts
输入分开:
$Response = 'Y'
$URLName = $Null
$SecondURLName = @()
# Enter URL
do {
$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')
用下面添加的相同 XML 标记分隔串联字符串的最佳方法是什么:
# 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")
这是我使用脚本保存在 urls.xml
文件中的当前结果:
<url>thisisfromread-host1.com thisisfromread-host2.com</url>
我需要保存在urls.xml文件中的只有:
<url>thisisfromread-host1.com</url>
<url>thisisfromread-host2.com</url>
一定有一件我没有想到的简单事情。
$SecondURLName
定义为数组,所以需要循环处理。将变量放入字符串 ("$SecondURLName"
) 会将数组元素合并为一个字符串,因此您最终得到一个元素。但是,要附加多个元素,您需要先添加一个根元素,因为 XML 文档不能有多个根元素。
$xml = New-Object System.XML.XMLDocument
$root = $xml.CreateElement('root')
$xml.AppendChild($root) | Out-Null
foreach ($url in $SecondURLName) {
$newNode = $xml.CreateElement('url')
$txt = $xml.CreateTextNode($url)
$newNode.AppendChild($txt) | Out-Null
$root.AppendChild($newNode) | Out-Null
}
$xml.Save('urls.xml')