PowerShell不允许我将XML节点添加到XML文件(使用PowerShell 5.1.183)

阿什温·阿加赫德(Ashwin Agarkhed)

从一个星期开始,我一直试图将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>

我现在正在这样做:

  1. 将文档保存在变量中
$doc = [xml](Get-Content permissions.xml)
  1. 将子变量追加到$ doc xml
[Void]$doc.TrustFrameworkPolicy.ClaimsProviders.AppendChild($childxml)

我收到以下错误:

使用参数“ 1”调用“ AppendChild”的异常:“由于指定的节点类型错误,因此无法将指定的节点作为该节点的有效子节点插入。”

zett42

您不能附加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)

另请参见:将XML字符串块附加到现有XmlDocument

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

节点gyp无法正常运行(WindowsError:[错误183]═хтючьюцэюёючфрЄ№Їрщы,)

节点js中的events.js 183错误

python FileExistsError: [WinError 183] 当该文件已经存在时无法创建文件:

FileExistsError:[WinError 183]该文件已存在时无法创建该文件:

IcmpSendEcho返回183

Powershell将1添加到Excel列参考

使用Powershell将行添加到XML文件

SSL证书添加失败,错误:183当文件已存在时无法创建文件-如何将证书绑定到ipport?

将 1 - 5 添加到行,同时考虑到 Pandas、Python 中的行数(也可以称为平铺/分箱)

仅在引导程序 5 中使用 1 个 div 时如何将第二个浮动标签添加到输入

System.Xml.XmlException 'Data at the root level is invalid, line 1, position 1' 当我从 1 xml 文件更改为 5 时出现错误

使用Powershell将XML元素添加到复杂的XML文件中

将 1 列拆分为 5 列

使用Augeas将新节点添加到XML文件

为什么Form1.resx不允许我编辑/添加资源?

SapUI5:如何将按钮动态添加到 CutomListItem (xml) 中?

使用 Powershell 将子元素添加到 XML 元素

错误405(不允许使用方法)Laravel 5

使用VB6将缺少的节点从Treeview1添加到Treeview2

使用powershell将具有多个值的元素添加到现有xml文件

如何使用PowerShell将复杂元素添加到XML文件?

将外部 JS 文件添加到 Angular 5 CLI

将RTL SCSS文件添加到zurb Foundation 5

从文件将图像添加到HTML5 Canvas

Excel 如何将分数保留为分数 5/5 不是 1 或 0/5 不是 0

Numpy 将 uint16 解包为 1-5-5-5 位块

通用ELF中的重定位(EM:183)

使用 for 循环以 -1、0 和 1 等比例填充 R 中的 5*5 矩阵

严重错误:1:1:序言中不允许包含内容。org.xml.sax.SAXParseException