在編程中,經常會用到xml文件,今天寫個博客記錄一下如何讀取的。先看xml文檔,文檔命名爲RawData.xml,放在\bin\Debug下。
<?xml version="1.0" encoding="utf-8" ?>
<StudentList>
<Student Id = "1">
<Name>Tim</Name>
<Age>28</Age>
</Student>
<Student Id = "2">
<Name>Tom</Name>
<Age>29</Age>
</Student>
<Student Id = "2">
<Name>Vina</Name>
<Age>30</Age>
</Student>
<Student Id = "3">
<Name>Emily</Name>
<Age>31</Age>
</Student>
</StudentList>
xmal代碼:
<Window x:Class="ReadXml_1005.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ReadXml_1005"
mc:Ignorable="d"
Title="MainWindow" Height="300" Width="500">
<StackPanel Grid.Row="0" Grid.Column="2">
<ListView x:Name="listViewStudents2" Margin="5">
<ListView.View>
<GridView>
<GridViewColumn Header="Id" Width="80" DisplayMemberBinding="{Binding XPath=@Id}"></GridViewColumn>
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding XPath=Name}"></GridViewColumn>
<GridViewColumn Header="Age" Width="120" DisplayMemberBinding="{Binding XPath=Age}"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
<Button Content="Load" Click="Button_Click4" Height="25" Margin="5,0"></Button>
</StackPanel>
</Window>
.cs文檔:
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Xml;
namespace ReadXml_1005
{
/// <summary>
/// MainWindow.xaml 的交互邏輯
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click4(object sender, RoutedEventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(@".\RawData.xml");
XmlDataProvider xdp = new XmlDataProvider();
xdp.Document = doc;
xdp.XPath = @"/StudentList/Student";
this.listViewStudents2.DataContext = xdp;
this.listViewStudents2.SetBinding(ListView.ItemsSourceProperty, new Binding());
}
}
}
運行結果:
工程下載地址:https://download.csdn.net/download/chulijun3107/11832943
留下郵箱也可以,我給發郵件。