我有一个脚本可以修改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; =&#39;是一个意外的令牌,预期的令牌是&#39 ;;&#39; &符似乎有问题,但是我使用了xml字符实体代码,所以我真的不知道这里发生了什么。
解析代码:
try {
if ($Mode -ne "Delete" -and $null -ne $Value -and $Value -ne '')
{
$ValueXml = [XElement]::Parse($Value)
}
}
答案 0 :(得分:1)
您似乎向我们展示了转义的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}&peoplesearch=false</SearchCenterUrlSwitch>
这是无效的XML,因为它包含未转义的&符号。
所以我认为你需要双击&符号:它需要
&amp;peoplesearch=false