C# 读取带xmlns 命名空间的XML
1 private void ViewTask1(XmlDocument root)
2 {
3 //验证略
4 string strXPath = "//abc:SummaryName";
5
6 XmlNamespaceManager namespaceManager = new XmlNamespaceManager(root.NameTable); //namespace
7 namespaceManager.AddNamespace("abc", "http://tempuri.org/");
8
9 XmlNodeList list = root.SelectNodes(strXPath, namespaceManager);
10 DataTable dt = new DataTable();
11 if (root.SelectNodes(strXPath, namespaceManager).Count == 0)
12 {
13 this.GridView1.EmptyDataText = "没有带办项目";
14 this.GridView1.DataBind();
15 }
16 else
17 {
18 //给dt添加列
19 XmlNode xmlnode = root.SelectSingleNode(strXPath, namespaceManager).ChildNodes[0];
20 DataColumn dc = null;
21 for (int i = 0; i < xmlnode.Attributes.Count; i++)
22 {
23 dc = new DataColumn(xmlnode.Attributes[i].Name);
24 dt.Columns.Add(dc);
25 }
26
27 foreach (XmlNode n in list)
28 {
29 foreach (XmlNode nn in n.ChildNodes)
30 {
31 DataRow dr = dt.NewRow();
32 for (int i = 0; i < dt.Columns.Count; i++)
33 {
34 dr[i] = nn.Attributes[i].Value;
35 }
36 dt.Rows.Add(dr);
37 }
38 }
39 }
40 this.GridView1.DataSource = dt;
41 this.GridView1.DataBind();
42 }
43
posted on 2009-04-02 03:46 YWN's blog 阅读(610) 评论(0) 收藏 举报
浙公网安备 33010602011771号