2015-03-19 68 views
-1

我试图解析字符串到SharePoint中吊球解析字符串转换成XML Powershell的

字符串我试图解析XML字符串:

f#^)X&9uk7u%

与转义字符字符串指定

f#^)X&9uk7u%

在解析Powershell的引发错误:

Unable to parse specified property into type System.String

引起问题的字符是&。如果我删除&,我可以解析没有任何问题。

任何想法都会很棒。

的代码如下

的XML已在PowerShell中的性能如下

<LobSystemInstance Name="MyLobInstance" DefaultDisplayName="MyLobInstance"> 
<Properties> 
    <Property Name="Property1" Type="System.Boolean">true</Property> 
    <Property Name="Property2" Type="System.String">{Property1}</Property> 
    <Property Name="Property3" Type="System.String">{Property3}</Property> 
    <Property Name="Property4" Type="System.String">{Property4}</Property> 
    <Property Name="Property5" Type="System.String">{Property5}</Property> 
    <Property Name="Property6" Type="System.String">{Property6}</Property> 
    <Property Name="Property7" Type="System.String">{Property7}</Property> 
    <Property Name="Property8" Type="System.String">{Property8}</Property> 
    <Property Name="Property9" Type="System.String">{Property9}</Property> 
    <Property Name="Property10" Type="System.String">{Property10}</Property> 
    <Property Name="Property11" Type="System.String">{Property11}</Property> 
    <Property Name="Property12" Type="System.String">{Property12}</Property> 
    <Property Name="Property13" Type="System.String">{Property13}</Property> 
</Properties> 

以下是命令

//-- Get the BDC Schema as a string 

$bdcModelSchema = (Get-Content $bdcModelFile.FullName) | Out-String 

//Replace the strings with desired values. 

$bdcModelSchema = $bdcModelSchema.Replace("{Property1}", $Property2) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property2}", f#^)X&9uk7u% | Out-String) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property3}", f#^)X&9uk7u%) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property4}", $Property4) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property5}", "Property5") 
$bdcModelSchema = $bdcModelSchema.Replace("{Property6}",$Property6) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property7}", $Property7) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property8}", $Property8) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property9}", $Property9) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property10}", $Property10) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property11}", $Property11) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property12}", $Property12) 
$bdcModelSchema = $bdcModelSchema.Replace("{Property13}", ($Property13)) 
+0

向我们展示一些代码,则请。 – 2015-03-19 09:15:58

+0

我们无法帮助您使用您的代码,而无需实际*查看*您的代码。 – 2015-03-19 23:01:11

+0

那么,你发布的代码与你的其他问题有什么关系?在XML或PowerShell代码中,我没有看到字符串'r $!)X&8ul7u $'。 – 2015-03-20 19:18:49

回答

0

就不行,因为在XML &是一个元字符。

要解决该字符串应该被定义为

$bdcModelSchema = $bdcModelSchema.Replace("{Property2}", 'x$*)X&amp;7hl9u#') 
0

为了r$!)X&8ul7u$串在你的代码必须放在单引号或双引号之间。使用双引号时,$字符必须转义。

$bdcModelSchema = $bdcModelSchema.Replace("{Property2}", 'r$!)X&8ul7u$') 

$bdcModelSchema = $bdcModelSchema.Replace("{Property2}", "r`$!)X&8ul7u`$")