5

次のスタブ XML ファイルがあります

<ResourceDictionary x:Uid="CultureResources" 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:system="clr-namespace:System;assembly=mscorlib" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

 <system:String x:Uid="system::.CultureName" x:Key=".CultureName">de-DE</system:String>

</ResourceDictionary>

次のテストコードで現在表示されているのと同じ方法で自動生成することにしています

[xml]$xmlfile = Get-Content "c:\test.xml"

[System.Xml.XmlNamespaceManager] $nsm = new-object System.Xml.XmlNamespaceManager $xmlfile.NameTable
$nsm.AddNamespace("x", "http://schemas.microsoft.com/winfx/2006/xaml")
$nsm.AddNamespace("system", "clr-namespace:System;assembly=mscorlib")

$nn = $xmlfile.CreateElement("system:String", $nsm)
$nn.set_InnerText("de-DE")
$nn.SetAttribute("Uid","system:.CultureName")
$nn.SetAttribute("Key",".CultureName")
$xmlfile.ResourceDictionary.AppendChild($nn)

しかし、私が得ている出力は

<ResourceDictionary x:Uid="CultureResources" 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:system="clr-namespace:System;assembly=mscorlib" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

 <system:String x:Uid="system::.CultureName" x:Key=".CultureName">de-DE</system:String>
 <system:String Uid="system:.CultureName" Key=".CultureName" xmlns:system=" xmlns xml x system">de-DE</system:String>
</ResourceDictionary>

方法:

A) 名前空間のテキストを取り除く

xmlns:system=" xmlns xml x system"

B) 属性の前に「x:」を付ける

どんな助けでも大歓迎です。

よろしく、

ライアン

4

1 に答える 1