【发布时间】:2017-01-05 11:59:55
【问题描述】:
是否可以将 PowerShell 中的变量插入 XML 格式? 前任。我已经声明 $SIDadm = sidadm 作为全局变量,我希望将其插入到下面的 xml 代码中
[xml]$REST2 =
'<config xmlns="http://www.sap.com/lmsl/slp">
<Parameter>
<id>JeeAdminPassword</id>
<value>mkSVQW1zMi070N</value>
</Parameter>
<Parameter>
<id>SidAdmUserPassword</id>
<value>cB8y@OSLHu@DcNPa</value>
</Parameter>
<Parameter>
<id>NoCredentialsMode</id>
<value>false</value>
</Parameter>
<Parameter>
<id>SidAdmUserName</id>
<value>$SIDadm</value>
</Parameter>
<Parameter>
<id>EHPStackFile</id>
<value>F:/SAPSoftware/J3M_MII15.1_SP3_Patch_1/Stack_generic.xml</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[]</id>
<value>2</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[0].SidAdmUserPassword</id>
<value>cB8y@OSLHu@DcNPa</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[0].InstanceNumber</id>
<value>0</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[0].SidAdmUserName</id>
<value>GLOBEDDC\j3ladm</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[0].HostName</id>
<value>j3lsap</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[1].SidAdmUserPassword</id>
<value>cB8y@OSLHu@DcNPa</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[1].HostName</id>
<value>j3lsap</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[1].InstanceNumber</id>
<value>2</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[1].SidAdmUserName</id>
<value>GLOBEDDC\j3ladm</value>
</Parameter>
<Parameter>
<id>InstanceName</id>
<value>JC00</value>
</Parameter>
<Parameter>
<id>SystemId</id>
<value>J3L</value>
</Parameter>
<Parameter>
<id>JeeAdminUser</id>
<value>Administrator</value>
</Parameter>
</config'
return $REST2
基本上,我想将值为 sidadm 的 $SIDadm 插入 XML 中。像这样在 (id)SidAdmUserName(/id) 下它的(值)将是
(值)sidadm(/值)
[xml]$REST2 =
'<config xmlns="http://www.sap.com/lmsl/slp">
<Parameter>
<id>JeeAdminPassword</id>
<value>mkSVQW1zMi070N</value>
</Parameter>
<Parameter>
<id>SidAdmUserPassword</id>
<value>cB8y@OSLHu@DcNPa</value>
</Parameter>
<Parameter>
<id>NoCredentialsMode</id>
<value>false</value>
</Parameter>
<Parameter>
<id>SidAdmUserName</id>
<value>sidadm</value>
</Parameter>
<Parameter>
<id>EHPStackFile</id>
<value>F:/SAPSoftware/J3M_MII15.1_SP3_Patch_1/Stack_generic.xml</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[]</id>
<value>2</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[0].SidAdmUserPassword</id>
<value>cB8y@OSLHu@DcNPa</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[0].InstanceNumber</id>
<value>0</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[0].SidAdmUserName</id>
<value>GLOBEDDC\j3ladm</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[0].HostName</id>
<value>j3lsap</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[1].SidAdmUserPassword</id>
<value>cB8y@OSLHu@DcNPa</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[1].HostName</id>
<value>j3lsap</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[1].InstanceNumber</id>
<value>2</value>
</Parameter>
<Parameter>
<id>SapSystemInstance[1].SidAdmUserName</id>
<value>GLOBEDDC\j3ladm</value>
</Parameter>
<Parameter>
<id>InstanceName</id>
<value>JC00</value>
</Parameter>
<Parameter>
<id>SystemId</id>
<value>J3L</value>
</Parameter>
<Parameter>
<id>JeeAdminUser</id>
<value>Administrator</value>
</Parameter>
</config'
$nsm = New-Object Xml.XmlNamespaceManager($REST2.NameTable)
$nsm.AddNamespace('ns', $REST2.DocumentElement.NamespaceURI)
$xpath = '/ns:config/ns:parameter[ns:id/text()="SidAdmUserName"]/ns:value'
$REST2.SelectSingleNode($xpath, $nsm).'#text' = $SIDadm
$REST2.Save([Console]::Out)
return $REST2
【问题讨论】:
-
我不清楚你在这里问什么。您是否有包含变量的 XML 并希望将变量扩展为它们的值?将变量插入 XML(模板)?将它们的值插入 XML(模板)?只是一个特定的变量还是全部?完全不同的东西?
-
我想在 xml 格式中使用 powershell 中的 $SIDadm 变量,很抱歉第一次在这里发帖时不清楚@AnsgarWiechers
标签: xml powershell