Xml 异常调用";解析";加上;1“;论点:“'=';是一个意外的标记。所需的令牌是'';
我有一个脚本,可以修改sharepoint网站上的xml文件。脚本获取给定xml节点的路径、节点名称以及它应该放在那里的值。然后使用Xelement.parse on value并将其放入站点上的xml文件中。例如: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
\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中用斜杠将部分包装起来,这很有效。