Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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 - Fatal编程技术网

如何使用PowerShell读取包含标头的XML文件

如何使用PowerShell读取包含标头的XML文件,xml,powershell,Xml,Powershell,我正在尝试使用PowerShell读取此XML文件: 名称 3.2.1 我使用的PowerShell命令: $fileContent = New-Object XML $fileContent.Load($filePath) # $filePath contains the path to the XML file above 我得到以下错误: 使用“1”参数调用“Load”时出现异常:“版本号“1.1”无效 如果删除标题或对其进行注释(),我将不再收到错误。问题是我需要该标题 如何

我正在尝试使用PowerShell读取此XML文件:


名称
3.2.1  
我使用的PowerShell命令:

$fileContent = New-Object XML
$fileContent.Load($filePath)  # $filePath contains the path to the XML file above
我得到以下错误:

使用“1”参数调用“Load”时出现异常:“版本号“1.1”无效

如果删除标题
或对其进行注释(
),我将不再收到错误。问题是我需要该标题


如何使用PowerShell读取带有标题的XML文件?

XML 1.1版在.NET中不受支持。请参阅以下演示和说明:

@'
<?xml version='1.1' encoding='UTF-8'?>  

<Root>  
  <element1>  
    <string>name</string>  
  </element1>  
  <version>3.2.1</version>  
</Root> 
'@ | Out-File Demo.xml

$content = (Get-Content .\Demo.xml)
[xml]$content #fails, not supportes
#if 'magical' features of v1.1 are not used, change version to 1.0
$fixed = $content.Replace('<?xml version=''1.1'' encoding=''UTF-8''?>','<?xml version=''1.0'' encoding=''UTF-8''?>')
[xml]$fixed #this should work
@'
名称
3.2.1  
“@|输出文件Demo.xml
$content=(获取内容。\Demo.xml)
[xml]$content#失败,不支持
#如果未使用v1.1的“神奇”功能,请将版本更改为1.0
$fixed=$content.Replace(“”,“”)
[xml]$fixed#这应该可以

我不建议阅读规范,因为XML 1.1已经过时。我建议您发表这篇关于XML 1.1的博文。

XML 1.1版在.NET中不受支持。请参阅以下演示和说明:

@'
<?xml version='1.1' encoding='UTF-8'?>  

<Root>  
  <element1>  
    <string>name</string>  
  </element1>  
  <version>3.2.1</version>  
</Root> 
'@ | Out-File Demo.xml

$content = (Get-Content .\Demo.xml)
[xml]$content #fails, not supportes
#if 'magical' features of v1.1 are not used, change version to 1.0
$fixed = $content.Replace('<?xml version=''1.1'' encoding=''UTF-8''?>','<?xml version=''1.0'' encoding=''UTF-8''?>')
[xml]$fixed #this should work
@'
名称
3.2.1  
“@|输出文件Demo.xml
$content=(获取内容。\Demo.xml)
[xml]$content#失败,不支持
#如果未使用v1.1的“神奇”功能,请将版本更改为1.0
$fixed=$content.Replace(“”,“”)
[xml]$fixed#这应该可以

我不建议阅读规范,因为XML 1.1已经过时了。我推荐这篇关于的博文。

文件是否真的是UTF-8编码的?如果XML版本是“1.0”而不是“1.1”,是否仍然会出错?不支持版本1.1-更改为1.0。但是为什么?我如何克服这一问题?我无法手动更改版本属性,这是错误的ht以后会出错。如果不使用XML版本1.1,会出现什么样的错误?文件实际上是UTF-8编码的吗?如果XML版本是“1.0”而不是“1.1”,还会出现错误吗?不支持版本1.1-更改为1.0。但为什么?我如何克服?我无法手动更改版本属性,它可能会出错稍后。当您不使用XMLVersion1.1时,会出现什么样的错误?