从一个星期开始,我一直试图将XML节点附加到父XML元素上,从而使我陷入困境。子节点和父节点如下所示:
[xml]$childxml = @"
<ClaimsProvider>
<Bomain> hey there</Bomain>
<Name>Login using </Name>
<TechnicalProfiles>
<TechnicalProfile Id="MIDC-What">
<DisplayName> Employee</DisplayName>
<Description>Login with your account</Description>
<Protocol Name="OpenIdConnect" />
<Metadata>
<Item Key="METADATA">https://login.microsoftonline.com</Item>
<Item Key="client_id">Mangal</Item>
<Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com</Item>
</Metadata>
<Cryptograph>
<Key Id="client_secret" StorageReferenceId="key" />
</Cryptograph>
<IncludeTechnicalProfile ReferenceId="MIDC-Shared" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
"@
我想这个孩子节点添加到该文件(文件名:permissions.xml
)
<TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"">
<BasePolicy>
</BasePolicy>
<BuildingBlocks></BuildingBlocks>
<ClaimsProviders>
<ClaimsProvider>
<Bomain> hey there 1</Bomain>
<Name>Login using </Name>
<TechnicalProfiles>
<TechnicalProfile Id="MIDC-What">
<DisplayName> Employee</DisplayName>
<Description>Login with your account</Description>
<Protocol Name="OpenIdConnect" />
<Metadata>
<Item Key="METADATA">https://login.microsoftonline.com</Item>
<Item Key="client_id">Mangal</Item>
<Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com</Item>
</Metadata>
<Cryptograph>
<Key Id="client_secret" StorageReferenceId="key" />
</Cryptograph>
<IncludeTechnicalProfile ReferenceId="MIDC-Shared" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<ClaimsProvider>
<Bomain> hey there 2</Bomain>
<Name>Login using </Name>
<TechnicalProfiles>
<TechnicalProfile Id="MIDC-What">
<DisplayName> Employee</DisplayName>
<Description>Login with your account</Description>
<Protocol Name="OpenIdConnect" />
<Metadata>
<Item Key="METADATA">https://login.microsoftonline.com</Item>
<Item Key="client_id">Mangal</Item>
<Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com</Item>
</Metadata>
<Cryptograph>
<Key Id="client_secret" StorageReferenceId="key" />
</Cryptograph>
<IncludeTechnicalProfile ReferenceId="MIDC-Shared" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<ClaimsProvider>
<Bomain> hey there 3</Bomain>
<Name>Login using </Name>
<TechnicalProfiles>
<TechnicalProfile Id="MIDC-What">
<DisplayName> Employee</DisplayName>
<Description>Login with your account</Description>
<Protocol Name="OpenIdConnect" />
<Metadata>
<Item Key="METADATA">https://login.microsoftonline.com</Item>
<Item Key="client_id">Mangal</Item>
<Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com</Item>
</Metadata>
<Cryptograph>
<Key Id="client_secret" StorageReferenceId="key" />
</Cryptograph>
<IncludeTechnicalProfile ReferenceId="MIDC-Shared" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
</ClaimsProviders>
</TrustFrameworkPolicy>
我现在正在这样做:
$doc = [xml](Get-Content permissions.xml)
[Void]$doc.TrustFrameworkPolicy.ClaimsProviders.AppendChild($childxml)
我收到以下错误:
使用参数“ 1”调用“ AppendChild”的异常:“由于指定的节点类型错误,因此无法将指定的节点作为该节点的有效子节点插入。”
您不能附加XmlNode
来自其他XML文档的。相反,您必须从文档创建一个节点以附加到:
$childxml = $doc.CreateDocumentFragment()
$childxml.InnerXml = @'
<ClaimsProvider>
<Bomain> hey there</Bomain>
<Name>Login using </Name>
<TechnicalProfiles>
<TechnicalProfile Id="MIDC-What">
<DisplayName> Employee</DisplayName>
<Description>Login with your account</Description>
<Protocol Name="OpenIdConnect" />
<Metadata>
<Item Key="METADATA">https://login.microsoftonline.com</Item>
<Item Key="client_id">Mangal</Item>
<Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com</Item>
</Metadata>
<Cryptograph>
<Key Id="client_secret" StorageReferenceId="key" />
</Cryptograph>
<IncludeTechnicalProfile ReferenceId="MIDC-Shared" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
'@
[Void]$doc.TrustFrameworkPolicy.ClaimsProviders.AppendChild($childxml)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句