使用PowerShell删除XML编码信息

时间:2017-08-24 12:55:10

标签: xml powershell encoding

我目前正在使用TFS PowerTools在PowerShell中运行查询并将结果导出为XML文件。然后,我想将该XML文件导入Alteryx进行进一步处理。当TFS PT导出XML文件时,它将以下标题放在顶部:

<?xml version="1.0" encoding="utf-8"?>

然而,Alteryx不喜欢这样,并且除非取消编码信息,否则拒绝阅读文档。有没有办法可以使用PowerShell删除编码信息,因此它只显示:     

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

是的,你可以:

$doc = New-Object xml
$doc.Load((Resolve-Path ".\path\to\doc.xml").ProviderPath)
if($doc.FirstChild.NodeType -eq 'XmlDeclaration')
{
    $doc.FirstChild.Encoding = $null
}
$doc.Save((Resolve-Path ".\path\to\doc.xml").ProviderPath)

答案 1 :(得分:0)

这将起作用,但xml文件不再有效。

$xml = get-content $xmlfile | Out-String
$xml = $xml.replace('<?xml version="1.0" encoding="utf-8"?>',"") #removes text
$xml | out-file $xmlfile #outputs text in file