我正在尝试使用 powershell 命令 select-xml 从 xml 文件中选择数据。当我运行下面的命令时,没有返回结果或错误。我希望屏幕上返回版本列表。这有什么问题吗?
PS C:\> select-xml -path "C:\t.xml" -xpath "//edition" | foreach {$_.node.InnerXML}
PS C:\>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
好的,所以我知道出了什么问题。XML 声明的第一个节点之前有一个空格字符。真烦人。我尝试了你的第一行:
PS H:\> $xml = ([xml](Get-Content -Path C:\scripts\t.xml)).Book.Projects.Project
Run Code Online (Sandbox Code Playgroud)
它出错了:
“..XML声明必须是文档中的第一个节点,并且前面不允许出现空格字符......”
我确信在尝试读取 xml 文件时, select-xml 应该会在问题中失败并出现同样的错误。xml 文件在 IE 中呈现良好。
| 归档时间: |
|
| 查看次数: |
7397 次 |
| 最近记录: |