当前位置: 代码迷 >> C# >> c# 怎么读取xml 多级子节点里的值
  详细解决方案

c# 怎么读取xml 多级子节点里的值

热度:95   发布时间:2016-05-05 02:34:03.0
c# 如何读取xml 多级子节点里的值?
读取内容如下:

 <ref-list>
      <title>References</title>
      <ref id="r1">
        <label>1</label>
        <mixed-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Yashchuk</surname>
              <given-names>V. V.</given-names>
            </name>
          </person-group>, 
          <source>Proc. SPIE </source> 
          <volume>6317</volume>, 
          <fpage>63170A</fpage>
           (<year>2006</year>).
        </mixed-citation>
      </ref>
</ref-list>

c# :

 XmlNodeList xlist =XmlDocument.SelectSingleNode('').ChildNodes;
 foreach (XmlElement el in xlist)//读元素值  
           {
                     这里可以读取到 ref 值

                     我还要读name 下surname 相关的值 ,如何写?
           }


------解决思路----------------------
继续嵌套foreach(){
里面来判断
}
------解决思路----------------------
写个相对路径不就好了,取第一个匹配到的surname
XmlNode node =XmlDocument.SelectSingleNode("//person-group/name/surname");
var txt = node.InnerText;
 
------解决思路----------------------
使用  linq  to xml 
------解决思路----------------------
可以考虑序列化处理
------解决思路----------------------
多个也差不多,取所有name节点
XmlNodeList xlist =XmlDocument.SelectNodes("/person-group//name/");
 foreach (XmlNode node in xlist)//读元素值  
           { 
                    var surname = node.ChildNodes[0].InnerText;
           }
  相关解决方案