方法: データ バインドで XML 名前空間を使用する
例
この例では、XML のバインディング ソースに指定された名前空間の処理方法を示します。
XML データに次の XML 名前空間定義がある場合:
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
次の例で示すように、XmlNamespaceMapping 要素を使用して、名前空間を Prefix にマップできます。 その後、Prefix を使用して、XML 名前空間を参照できます。 この例の ListBox には、各 item の title と dc:date が表示されます。
<StackPanel.Resources>
<XmlNamespaceMappingCollection x:Key="mapping">
<XmlNamespaceMapping Uri="http://purl.org/dc/elements/1.1/" Prefix="dc" />
</XmlNamespaceMappingCollection>
<XmlDataProvider Source="http://msdn.microsoft.com/subscriptions/rss.xml"
XmlNamespaceManager="{StaticResource mapping}"
XPath="rss/channel/item" x:Key="provider"/>
<DataTemplate x:Key="dataTemplate">
<Border BorderThickness="1" BorderBrush="Gray">
<Grid Width="600" Height="50">
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
<RowDefinition Height="25"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding XPath=title}" />
<TextBlock Grid.Row="1" Text="{Binding XPath=dc:date}" />
</Grid>
</Border>
</DataTemplate>
</StackPanel.Resources>
<ListBox
Width="600"
Height="600"
Background="Honeydew"
ItemsSource="{Binding Source={StaticResource provider}}"
ItemTemplate="{StaticResource dataTemplate}"/>
指定する Prefix は、XML ソースで使用されているものと一致する必要はありません。XML ソースでプレフィックスが変更された場合でも、マッピングは引き続き機能します。
この特定の例では、XML データは Web サービスから取得されますが、XmlNamespaceMapping 要素は、インラインの XML でも、埋め込まれているファイルの XML データでも有効です。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET Desktop feedback
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示