0
我目前正在嘗試創建一個電話簿xml生成器,我們可以使用它輕鬆發送到FTP服務器並進行訪問。Powershell - 使用CSV數據在ForEach循環中分離元素
目前我有以下Powershell腳本;
----------
$csvPath = "C:\Users\nwong\Desktop\IDN_EXT.csv"
[System.Xml.XmlDocument] $xmlDocument = New-Object System.Xml.XmlDocument
$directory = $xmlDocument.CreateElement("Directory")
$title_tag = read-host "Enter a title for your phonebook.."
$title = $xmlDocument.CreateElement("Title")
$menu_item = $xmlDocument.CreateElement("MenuItem")
$prompt = $xmlDocument.CreateElement("Prompt")
$ext = $xmlDocument.CreateElement("URI")
$xmlDocument.AppendChild($directory)
$directory.AppendChild($title)
$title.AppendChild($xmlDocument.CreateTextNode($title_tag))
ForEach ($e in (Import-CSV -Path $csvPath)) {
$directory.AppendChild($menu_item)
$menu_item.AppendChild($prompt)
$prompt.AppendChild($xmlDocument.CreateTextNode($e.Name))
$menu_item.AppendChild($ext)
$ext.AppendChild($xmlDocument.CreateTextNode($e.Extension))
}
$xmlDocument.Save("C:\Users\nwong\Desktop\test.xml")
----------
目前,該腳本生成以下XML文件
----------
<Directory>
<Title>Test</Title>
<MenuItem>
<Prompt>OperatorKate ShanahanAtiq RAthman AIrfani DFelicity
PDeswanto</Prompt>
<URI>50005001500250035004500550069</URI>
</MenuItem>
</Directory>
---------
我在尋找的結果是這樣的,因此,在foreach循環中找到的每個值創建的元素標籤;
---------
<MenuItem>
<Prompt>Operator</Prompt>
<URI>625000</URI>
</MenuItem>
<MenuItem>
<Prompt>Kate Shanahan</Prompt>
<URI>625001</URI>
</MenuItem>
<MenuItem>
<Prompt>Atiq R.</Prompt>
<URI>625002</URI>
</MenuItem>
<MenuItem>
<Prompt>Athman A.</Prompt>
<URI>625003</URI>
</MenuItem>`
----------
我應該有另一種循環,產生相同的ForEach循環和分裂每個單獨的值或者是有沒有在CSV文件的每個值創建單獨的元素標籤更簡單的方法?
請編輯的問題,並添加樣本輸入數據。 – vonPryz