一方法返回XML文件节点的DataView
如DataView view = GetData(string xpath);
可以通过view[0]["attrib1"]获取属性attrib1的值问题:如何获取<label>标签中的内部文本值?即"文本文本..."XML文件结构
<labels>
    <label name="A" attrib1="" >
    文本文本...
    </label>
</labels>

解决方案 »

  1.   

    谢谢楼上的回答,但view[0]["attrib1"]是DataRowView对象没有InnerText属性
    我现在可以通过view[0]["label_Text"]获取值即标签名("label") + "_Text",但不知道是不是正确的解决方法
      

  2.   

    要看GetData怎么实现的了,如果返回的dataview本身就不包含innerText信息
    你怎么都查不到
    可以为视图加入innerText属性(如果不包含innerText属性)
    其实将xml转向view本身就不太合适...........
      

  3.   

    //xml
     string xml = @"<lables>
    <label name=""A"" attrib1=""att1"">text</label>
    <label name=""B"" attrib1=""att2"">中文</label>
    </lables>
    ";
    //读入内存流
            MemoryStream ms=new MemoryStream(Encoding.UTF8.GetBytes(xml));
    //载入到dataset
            DataSet ds = new DataSet();
            ds.ReadXml(ms);
    //取默认视图
            DataView dv = ds.Tables[0].DefaultView ;
    //遍历行
            foreach (DataRowView drv in dv) {
    //遍历列
                foreach (DataColumn dc in dv.Table.Columns) {
    //输出
                    Console.Write("{0}:{1}\t", dc.Caption, drv[dc.Caption]);
                }
                Console.WriteLine();
            }
            Console.Read();
    =========运行结果
    name:A  attrib1:att1    label_Text:text
    name:B  attrib1:att2    label_Text:中文...
      

  4.   

    可见以节点名加_Text可以取得innerText属性
      

  5.   

    谢谢blackant2,已经测试过了,结果也是这样
    不过如果label标签中如果同时存在"label_Text"属性时则变成了节点名加_Text0
    不过目前也只有这个方法了