使用 PowerShell 删除 XML 编码信息



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

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

但是,Alteryx不喜欢这样,并且拒绝阅读文档,除非删除编码信息。 有没有办法使用 PowerShell 删除编码信息,使其仅显示:

提前感谢您的帮助。

是的,你可以:

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

这将起作用,但是 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

最新更新