[英]How to convert list to xml in Powershell?
我有不同的xml文件,我必須將所有不同的“item”節點組合到一個新的xml文件中。
我已經能夠獲取節點並將它們提取到列表中,但現在我很難將該列表轉換為xml文件。
我試圖將列表轉換為xml文件usint convertTo-XML,但由於某種原因,xml文件中沒有任何項目。 我檢查了清單,確實有這些項目。
$OutComId = @()
Get-ChildItem $rootFolder\$country\$projectsToCheck\$mmyyyy | ForEach-Object {
[xml]$xml = Get-Content -Encoding UTF8 $rootFolder\$country\$projectsToCheck\$mmyyyy\$_
$nodes = $xml.SelectNodes("//Costs")
foreach($node in $nodes) {
$OutComId += $node.Item
}
}
$exportPath = "$rootFolder\$country\$projectsToCheck\$mmyyyy"
$OutComId | ConvertTo-XML | Out-File "$exportPath\combined.xml"
我得到一個空的xml文件
這完全是關於out-file
如何處理XML變量。 要理解這一點,你需要在一個簡單的變量上測試它,假設我們有一個變量
$x="This an XML variable"
。 首先,我們將使用像這樣的out-file
輸出這個變量
$x|out-file -path C:\\test.xml
沒有將其轉換為XML。 當然,當它作為XML文件打開時,它將是空的,但是當使用記事本編輯它時,它將顯示我們輸入的字符串。 之后我們將轉換為XML,然后像在代碼中那樣將其轉換為XML。
$xXML=$x|convertto-XML
$xXML|out-file C:\\test2.xml
和以前一樣,XML文件將為空,但在編輯文件test2.xml時,它將包含如下內容:
xml對象
--- -------
version =“1.0”encoding =“utf-8”對象
如果你在shell中輸入$xXML
,你會看到相同的結果。 因此out-file只是輸出通過管道的結果。 如果你想看到你需要鍵入$xXML.innerxml
的XML表示,我更喜歡使用這些方法之一將任何XML數據保存到文件。
$xXML.save("C:\\test3.xml")
要么
$x |Export.CliXML -path "C:\\test4.xml"
因此,您只需輸入代碼,而不是代碼中的最后一行
$OutComId | Export-CliXML "$exportPath\\combined.xml"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.