Я понял, что моя проблема читать XML-файл ниже была из-за пространства имен, и я добавил поддержку для XmlDataProvider, но я не могу заставить это работать, и я не нашел способ отладить это.XmlDataProvider чтение XML с пространством имен по умолчанию
Любой, кто может определить, где я ошибаюсь?
XAML:
<XmlDataProvider
x:Key="xmlDataProvider"
XPath="/r:entityStoreData/r:metaInfo/r:exportRoots" Source="C:\tmp\Data.XML">
<XmlDataProvider.XmlNamespaceManager>
<XmlNamespaceMappingCollection>
<XmlNamespaceMapping
Uri="http://www.vordel.com/2005/06/24/entityStore"
Prefix="r" />
</XmlNamespaceMappingCollection>
</XmlDataProvider.XmlNamespaceManager>
</XmlDataProvider>
<HierarchicalDataTemplate x:Key="DataTemp" ItemsSource="{Binding XPath=r:key}" DataType="Key">
<StackPanel Orientation="Horizontal" Margin="0,2">
<Image>
<Image.Style>
<Style>
<Setter Property="Image.Source" Value="D:\Projects\Icons\PNG\coffee.png" />
<Style.Triggers>
<DataTrigger Binding="{Binding Source={StaticResource xmlDataProvider}, [email protected]}" Value="Container">
<Setter Property="Image.Source" Value="D:\Projects\Icons\PNG\coffee.png" />
</DataTrigger>
<DataTrigger Binding="{Binding Source={StaticResource xmlDataProvider}, [email protected]}" Value="Configuration">
<Setter Property="Image.Source" Value="D:\Projects\Icons\PNG\edit.png" />
</DataTrigger>
<DataTrigger Binding="{Binding Source={StaticResource xmlDataProvider}, [email protected]}" Value="Circuit">
<Setter Property="Image.Source" Value="D:\Projects\Icons\PNG\chat.png" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<TextBlock Text="{Binding Source={StaticResource xmlDataProvider}, XPath=r:id/@value}" Margin="5,0" />
</StackPanel>
</HierarchicalDataTemplate>
</Window.Resources>
<Grid>
<TreeView Name="TV1" HorizontalAlignment="Left" Height="428" VerticalAlignment="Top" Width="1070" ItemsSource="{Binding}" ItemTemplate="{StaticResource DataTemp}"/>
<Button Content="Button" HorizontalAlignment="Left" Margin="10,445,0,0" VerticalAlignment="Top" Width="116" Height="33" Click="Button_Click_1"/>
</Grid>
Начало XML-файла:
<entityStoreData xmlns="http://www.vordel.com/2005/06/24/entityStore">
<metaInfo flags="138">
<exportRoots>
<key type='ESConfiguration'>
<id field='name' value='Entity Store Configuration'/>
</key>
<key type='CircuitContainer'>
<id field='name' value='Scania'/>
<key type='CircuitContainer'>
<id field='name' value='Integrations'/>
<key type='CircuitContainer'>
<id field='name' value='SCIS502_DriverTripService'/>
<key type='FilterCircuit'>
<id field='name' value='SCPL0035_CheckADGroupMembership_SCIS502'/>
</key>
</key>
</key>
</key>
<key type='XPathGroup'>
<id field='name' value='XPath Definitions'/>
<key type='XPathAddNodeLocationGroup'>
<id field='name' value='Add Node Locations'/>
<key type='XPath'>
<id field='name' value='SOAP 1.2 Header Element'/>
</key>
</key>
</key>
Вы можете попробовать для минимизации XML и XAML, чтобы ошибка все же возникала, но возможностей меньше? –
Кажется, что вам не хватает XML ... это только от этого вопроса, или он отсутствует в вашем файле? * Это * вызовет проблему. Кроме того, вам, похоже, не хватает вашего объявления XML: ' Xml version =" 1.0 "encoding =" utf-8 "?>' – Sheridan
Я заявил, что это начало XML-файла. Он правильно закрыт и т. Д., Но имеет большое значение, чтобы включить полный файл. А также это XML из внешнего продукта, поэтому я застрял в том, как он выглядит. – StefanE