异常调用" Parse"用" 1"参数:"' ='是一个意外的令牌。预期的令牌是&#39 ;;'

时间:2018-06-18 08:42:31

标签: xml powershell sharepoint

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

\Script.ps1 -Mode AddOrUpdate -Path '/ParentNode/ChildNode' -Name 'InterestingRow' -Value '<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}</SearchCenterUrlSwitch>'

这个按预期工作,但当我尝试添加:

&peoplesearch=false

到Value,所以它看起来像这样:

<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}&peoplesearch=false</SearchCenterUrlSwitch>

我在标题中收到错误,' ='是一个意外的令牌,预期的令牌是&#39 ;;' &符似乎有问题,但是我使用了xml字符实体代码,所以我真的不知道这里发生了什么。

解析代码:

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

1 个答案:

答案 0 :(得分:1)

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

<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}</SearchCenterUrlSwitch>

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

现在,如果您将其更改为

&lt;SearchCenterUrlSwitch&gt;/Search/SitePages/default.aspx?k={keyword}&amp;peoplesearch=false&lt;/SearchCenterUrlSwitch&gt;

它成为

的转义表示形式
<SearchCenterUrlSwitch>/Search/SitePages/default.aspx?k={keyword}&peoplesearch=false</SearchCenterUrlSwitch>

这是无效的XML,因为它包含未转义的&符号。

所以我认为你需要双击&符号:它需要

&amp;amp;peoplesearch=false