Xml 异常调用";解析";加上;1“;论点:“'=';是一个意外的标记。所需的令牌是'';

Xml 异常调用";解析";加上;1“;论点:“'=';是一个意外的标记。所需的令牌是'';,xml,powershell,sharepoint,Xml,Powershell,Sharepoint,我有一个脚本,可以修改sharepoint网站上的xml文件。脚本获取给定xml节点的路径、节点名称以及它应该放在那里的值。然后使用Xelement.parse on value并将其放入站点上的xml文件中。例如: \Script.ps1 -Mode AddOrUpdate -Path '/ParentNode/ChildNode' -Name 'InterestingRow' -Value '<SearchCenterUrlSwitch>/Search/SiteP

我有一个脚本,可以修改sharepoint网站上的xml文件。脚本获取给定xml节点的路径、节点名称以及它应该放在那里的值。然后使用Xelement.parse on value并将其放入站点上的xml文件中。例如:

\Script.ps1 -Mode AddOrUpdate -Path '/ParentNode/ChildNode' -Name 'InterestingRow' -Value '<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}</SearchCenterUrlSwitch>'
这一个按预期工作,但当我尝试添加:

&peoplesearch=false
对于值,它将如下所示:

<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}&peoplesearch=false</SearchCenterUrlSwitch>
我在标题中得到错误,“=”是意外标记,预期标记是“;” 符号似乎有问题,但我使用了xml字符实体代码,所以我真的不知道这里发生了什么

解析代码:

    try {
    if ($Mode -ne "Delete" -and $null -ne $Value -and $Value -ne '')
    {           
        $ValueXml = [XElement]::Parse($Value)
    }
}

您似乎在向我们展示转义XML:即您的价值

<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}</SearchCenterUrlSwitch>
是的转义表示

<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}</SearchCenterUrlSwitch>
<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}&peoplesearch=false</SearchCenterUrlSwitch>
它变成了一个转义的表示

<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}</SearchCenterUrlSwitch>
<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}&peoplesearch=false</SearchCenterUrlSwitch>
/Search/SitePages/default.aspx?k={keyword}&peoplesearch=false
这是无效的XML,因为它包含未替换的符号和

所以我认为你需要双倍地避开这个符号:它需要


&;amp;peoplesearch=false

请向我们展示
脚本的内容。ps1
您的建议从一开始就不起作用,但它让我想到在CDATA中用斜杠将部分包装起来,这很有效。