这是我用itextsharp导出的XML格式
<?xml version="1.0" encoding="UTF-8"?>
<Book>
  <Title Page="1 XYZ 0 595 0.0" Action="GoTo" >马克思主义中国化研究
    <Title Page="9 XYZ 0 595 0.0" Action="GoTo" >目录</Title>
    <Title Page="13 XYZ 0 595 0.0" Action="GoTo" >概论篇
      <Title Page="15 XYZ 0 595 0.0" Action="GoTo" >第一章 马克思主义观的分歧由来已久
        <Title Page="16 XYZ 0 595 0.0" Action="GoTo" >一、历史的回顾</Title>
        <Title Page="30 XYZ 0 595 0.0" Action="GoTo" >二、科学马克思主义观的实质</Title>
        <Title Page="37 XYZ 0 595 0.0" Action="GoTo" >三、马克思主义中国化的前提和条件</Title>
        <Title Page="41 XYZ 0 595 0.0" Action="GoTo" >四、历史的启迪和思考</Title>
      </Title>
   </Title>
</Title>
请问我怎么获取Title中的值,我用SelectSingleNode抓去title会把全部的title值都抓取到一个变量了
还有要获取Page后面的页数除了用到正则表达式还有舍呢么方法吗这是innertext里的值
"马克思主义中国化研究\n    目录概论篇\n      第一章 马克思主义观的分歧由来已久\n        一、历史的回顾二、科学马克思主义观的实质三、马克思主义中国化的前提和条件四、历史的启迪和思考第二章 落实马克思主义观要以认真学习原著为前提\n        一、坚持马克思主义中国化既要认真学习原著,又要反对教条主义二、深入学习毛泽东著作和有关文献对马克思主义中国化的论述三、要以新的思想观点继承发展马克思主义第三章 落实马克思主义观既要善于结合,又要善于开拓\n        一 、实现马克思主义中国化要在结合上下工夫二、从毛泽东调查研究理论中推进马克思主义中国化第四章 马克思主义中国化的历史进程\n        一、马克思主义中国化的历史必然性二、马克思主义中国化的历史进程和两次历史性飞跃开拓奠基篇——毛泽东思想\n      第五章 中国向何处去\n        一、近现代中国社会的危机二、先驱者的脚步三、毛泽东的早期探索第六章 开辟中国革命新路的历史功勋\n        一 、中国革命的特殊性二 、农村包围城市的革命道路三、人民军队,人民战争四 、反对教条主义第七章 阐发新民主主义理论的光辉篇章\n        一、新民主主义理论的创立二、新民主主义革命理论三 、新民主主义社会蓝图四、新民主主义建设实践五 、新民主主义理论的历史启迪第八章 确立马克思主义的思想路线\n        一 、整风运动:全党学习马克思主义二 、实事求是:马克思主义的思想路线三 、有的放矢:马克思主义的基本要求四、毛泽东思想:中国化的马克思主义第九章 为社会主义基本制度的建立和新中国的发展而艰辛探索\n        一、社会主义建设的基础工程二 、论十大关系三、关于社会主义社会的矛盾问题四 、读书的建议和探索社会主义建设规律第十章 20 世纪中国革命最伟大的创业者和毛泽东的历史地位\n        一、开拓创新的世纪伟人二 、艰难探索的理论锐气三、永垂不朽的历史地位"。。

解决方案 »

  1.   

    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(Server.MapPath("~/test.xml"));
    XmlNodeList titles = xmlDoc.SelectNodes(@"//Title");
    foreach (XmlNode title in titles)
    {
    if (title.HasChildNodes)
    {
    Response.Write(title.ChildNodes[0].Value + "…………");
    Response.Write(Regex.Match(title.Attributes["Page"].Value, @"^\d+").Value + "<br/>");
    }
    }
    输出:
    马克思主义中国化研究 …………1
    目录…………9
    概论篇 …………13
    第一章 马克思主义观的分歧由来已久 …………15
    一、历史的回顾…………16
    二、科学马克思主义观的实质…………30
    三、马克思主义中国化的前提和条件…………37
    四、历史的启迪和思考…………41
      

  2.   

    再加个Trim()去除空白符更好:
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(Server.MapPath("~/test.xml"));
    XmlNodeList titles = xmlDoc.SelectNodes(@"//Title");
    foreach (XmlNode title in titles)
    {
    if (title.HasChildNodes)
    {
    Response.Write(title.ChildNodes[0].Value.Trim() + "…………");
    Response.Write(Regex.Match(title.Attributes["Page"].Value, @"^\d+").Value + "<br/>");
    }
    }
      

  3.   


    XmlNodeList xnl = xmlDoc.GetElementsByTagName("Title");IList<string> nodeTempStr=new List<string>();
     foreach (XmlNode node in xnl)
                {
                    nodeTempStr.Add("node.InnerText") ;
                }
    node.InnerText是不是这里错了,应该是value。
      

  4.   

    在给你的代码基础上改,Value用于文本节点。
      

  5.   

    我不太明白title.ChildNodes[0]这里,设置断点的时候能看到她的值,但我不知道为什么childnode1,2,3怎么没有
      

  6.   

    就是title的第1个子节点,该节点是个文本节点,比如“马克思主义中国化研究”,文本节点的值用Value属性获取。