在Powershell中读取带有BOM的XML文件

发布于 2024-11-06 07:01:38 字数 179 浏览 4 评论 0原文

Powershell 似乎在使用 unicode BOM 的 xml 文件上吐槽 - 代码:

$xml = [xml]{ get-content $filename }

因“根级别的数据无效”而爆炸。

有没有一种简单的方法可以做到这一点,而无需摆弄文件的内容?

Powershell seems to be barfing on an xml file with a unicode BOM - the code:

$xml = [xml]{ get-content $filename }

blows up with 'Data at the root level is invalid'.

Is there an easy way to do this without fiddling around with the contents of the file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浅唱ヾ落雨殇 2024-11-13 07:01:38

您正在尝试将脚本块转换为 XML。使用 () 而不是 {}

$xml  = [xml] (gc $filename)

事实上,错误消息已经告诉您这么多:

PS Home:\> $xml = [xml]{gc test.xml}
Cannot convert value "gc test.xml" to type "System.Xml.XmlDocument". Error: "Data at the root level is invalid. Line 1,
 position 1."
At line:1 char:13
+ $xml = [xml] <<<< {gc test.xml}
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException

您注意到脚本块的内容如何显示在错误消息中吗?

You're trying to convert a script block into XML here. Use () instead of {}:

$xml  = [xml] (gc $filename)

In fact, the error message tells you as much already:

PS Home:\> $xml = [xml]{gc test.xml}
Cannot convert value "gc test.xml" to type "System.Xml.XmlDocument". Error: "Data at the root level is invalid. Line 1,
 position 1."
At line:1 char:13
+ $xml = [xml] <<<< {gc test.xml}
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException

You notice how the contents of the script block show up in the error message?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文