select-xml 不返回任何结果
我正在尝试使用 powershell 命令 select-xml 从 xml 文件中选择数据。当我运行下面的命令时,没有返回结果或错误。我希望屏幕上返回版本列表。这有什么问题吗?
PS C:\> select-xml -path "C:\t.xml" -xpath "//edition" | foreach {$_.node.InnerXML}
PS C:\>
XML 文件 (C:\t.xml) 是:
<?xml version="1.0" encoding="utf-8"?>
<Book>
<projects>
<project name="Book1" date="2009-01-20">
<editions>
<edition language="English">En.Book1.com</edition>
<edition language="German">Ge.Book1.Com</edition>
<edition language="French">Fr.Book1.com</edition>
<edition language="Polish">Pl.Book1.com</edition>
</editions>
</project>
</projects>
</Book>
I'm trying to use the powershell command select-xml to select data from an xml file. When I run the command below no results or errors are returned. I expect a list of the editions to be returned to the screen. What's wrong with this?
PS C:\> select-xml -path "C:\t.xml" -xpath "//edition" | foreach {$_.node.InnerXML}
PS C:\>
The XML file (C:\t.xml) is:
<?xml version="1.0" encoding="utf-8"?>
<Book>
<projects>
<project name="Book1" date="2009-01-20">
<editions>
<edition language="English">En.Book1.com</edition>
<edition language="German">Ge.Book1.Com</edition>
<edition language="French">Fr.Book1.com</edition>
<edition language="Polish">Pl.Book1.com</edition>
</editions>
</project>
</projects>
</Book>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
好的,所以我知道出了什么问题。 XML 声明的第一个节点之前有一个空格字符。真烦人。我尝试了你的第一行:
它出错了:
我确信在尝试读取 xml 文件时,select-xml 在问题中应该会失败,并出现同样的错误。xml 文件在 IE 中呈现良好。
OK, so I know what's wrong. There was one white space character before the first node of the XML declaration. Really annoying. I tried your first line:
It errored with:
I'm sure that the select-xml should fail in the question with this same error when attempting to read an xml file. The xml file rendered fine in IE.
另一种方法是:
Just another way to do this is:
$_.node 返回一个不具有innerXml 属性的System.Xml.XmlElement
$_.node returns a System.Xml.XmlElement which does not have an innerXml property
这里还有几个选项:
Here's a couple more options: