Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Powershell从XML中删除特殊/错误字符_Xml_Powershell_Powershell 3.0 - Fatal编程技术网

如何使用Powershell从XML中删除特殊/错误字符

如何使用Powershell从XML中删除特殊/错误字符,xml,powershell,powershell-3.0,Xml,Powershell,Powershell 3.0,我有一个XML文件,我想删除以下文件中的十六进制字符错误是无效字符: 我不知道STX是什么意思,当我尝试将它复制到我的剪贴板并粘贴到MS Work时,它显示了一些其他值 如何在powershell中编写脚本以从XML文件中删除上述内容。以下正则表达式将通过指定一个字符类来消除XML文档中的整个有效unicode项集,从而从XML中删除所有无效字符: $rPattern = "[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000\x10FFFF]" $xml

我有一个XML文件,我想删除以下文件中的十六进制字符错误是无效字符:

我不知道STX是什么意思,当我尝试将它复制到我的剪贴板并粘贴到MS Work时,它显示了一些其他值


如何在powershell中编写脚本以从XML文件中删除上述内容。

以下正则表达式将通过指定一个字符类来消除XML文档中的整个有效unicode项集,从而从XML中删除所有无效字符:

$rPattern = "[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000\x10FFFF]"
$xmlText -replace $rPattern,''
这可以很容易地转化为:

然后做:

Repair-XmlString (Get-Content path\to\file.xml -Raw) |Set-Content path\to\file.xml 

它们是ASCII、
文本0x02的开始和
文本0x03的结束。至于如何删除这些错误,这实际上取决于xml文件的内容。@vonPryz有没有办法生成一个脚本来查找错误??有没有办法生成一个脚本?当然有。我们给你写剧本好吗?不太可能。
Repair-XmlString (Get-Content path\to\file.xml -Raw) |Set-Content path\to\file.xml