Powershell方法1)确定XML值是否存在,2)替换值

Powershell方法1)确定XML值是否存在,2)替换值,xml,powershell,Xml,Powershell,我几乎不使用Powershell,更不用说XML了,所以希望这些都是相当简单的问题。提前感谢。以下是一些如何处理XML数据的示例: #反序列化XML文本选项1。 #这在语法上比较简单,但容易受到编码问题的影响。 [xml]$xml=Get Content-Path TestFile.xml #反序列化XML文本选项2。必须在加载方法中使用完整路径。 $xml=[xml]::new() $xml.Load('C:\Temp\TestFile.xml') #更新节点属性1值 $xml.Test1.T

我几乎不使用Powershell,更不用说XML了,所以希望这些都是相当简单的问题。提前感谢。

以下是一些如何处理XML数据的示例:

#反序列化XML文本选项1。
#这在语法上比较简单,但容易受到编码问题的影响。
[xml]$xml=Get Content-Path TestFile.xml
#反序列化XML文本选项2。必须在加载方法中使用完整路径。
$xml=[xml]::new()
$xml.Load('C:\Temp\TestFile.xml')
#更新节点属性1值
$xml.Test1.Test1Properties.Property1='新值'
#如果SourceType节点的值为None,则返回True
$xml.Test1.Test1Sources.Source1.SourceType-ceq'None'
#如果Source2Property作为Source2的子节点存在,则返回True
$xml.SelectSingleNode(“//Test1/Test1Sources/Source2/Source2Properties”)-is[System.xml.xmlement]
#将结果保存在xml文件中。必须在Save()方法中使用完整路径。
$xml.Save('C:\temp\TestFile.xml')

以下是一些如何处理XML数据的示例:

#反序列化XML文本选项1。
#这在语法上比较简单,但容易受到编码问题的影响。
[xml]$xml=Get Content-Path TestFile.xml
#反序列化XML文本选项2。必须在加载方法中使用完整路径。
$xml=[xml]::new()
$xml.Load('C:\Temp\TestFile.xml')
#更新节点属性1值
$xml.Test1.Test1Properties.Property1='新值'
#如果SourceType节点的值为None,则返回True
$xml.Test1.Test1Sources.Source1.SourceType-ceq'None'
#如果Source2Property作为Source2的子节点存在,则返回True
$xml.SelectSingleNode(“//Test1/Test1Sources/Source2/Source2Properties”)-is[System.xml.xmlement]
#将结果保存在xml文件中。必须在Save()方法中使用完整路径。
$xml.Save('C:\temp\TestFile.xml')

简洁、高效、有文件证明的答案中所需的一切。非常感谢!在一个简洁、高效、有文件证明的答案中所需的一切。非常感谢!
<?xml version="1.0" encoding="utf-8"?>
<Test1>
  <Test1Properties>
    <Property1>replace this</Property1>
  </Test1Properties>
  <Test1Sources>
    <Source1>
      <SourceReference>sourceref</SourceReference>
      <SourceType>None</SourceType>
    </Source1>
    <Source2>
      <Source2Properties>
        <Provider>prov</Provider>
        <ProviderKey>some-guid</ProviderKey>
      </Source2Properties>
    </Source2>
  </Test1Sources>
</Test1>
[xml]$xmlAttr = Get-Content -Path TestFile.xml