替换包含&符号的XML节点中的文本

时间:2017-05-11 10:35:20

标签: powershell replace contains selectnodes

我有一个PowerShell脚本,它试图用不同的值替换XML文件节点中的值。

示例,在<name_of_function>节点内替换&#39;&amp;&#39;与&#39;和&#39;。

SectorDesc

所以这一行

<?xml version="1.0" encoding="UTF-8"?>
<OrganisationUnits>
  <OrganisationUnitsRow num="8">
    <OrganisationId>ACME24/7HOME</OrganisationId>
    <OrganisationName>ACME LTD</OrganisationName>
    <ContactDetails>
      <ContactDetailsRow num="1">
        <ContactCode>OFFICE</ContactCode>
      </ContactDetailsRow>
    </ContactDetails>
    <Sector>P</Sector>
    <SectorDesc>Private Private &amp; Voluntary</SectorDesc>
  </OrganisationUnitsRow>
</OrganisationUnits>

woudl现在看起来像这样

<SectorDesc>Private Private &amp; Voluntary</SectorDesc>

到目前为止,这是我的代码。

<SectorDesc>Private Private and Voluntary</SectorDesc>

1 个答案:

答案 0 :(得分:3)

如果您阅读xml,那么&amp;将只读取&,因此您必须替换为&。此外,您可以像这样访问节点:

$xml.OrganisationUnits.OrganisationUnitsRow.SectorDesc = $xml.OrganisationUnits.OrganisationUnitsRow.SectorDesc -replace '&', 'and'