如何使用Powershell从XML中删除特殊/错误字符
我有一个XML文件,我想删除以下文件中的十六进制字符错误是无效字符: 我不知道STX是什么意思,当我尝试将它复制到我的剪贴板并粘贴到MS Work时,它显示了一些其他值如何使用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
如何在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