2015-03-19 51 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`$")