CSDN-CSDN社区-.NET技术-C#

收藏 【SOS】 C# 如何读标记信息[问题点数:50]

  • flatron2009
  • (flatron2009)
  • 等 级:
  • 结帖率:
楼主发表于:2009-01-09 21:05:54
现在我有一个文本文件 大概结构有点像XML但是不是
例如
<Job>
  <Cal>
      <Attributes>
          <Attribute>
                  .....
          </Attribute>
          <Attribute>
                  .....
          </Attribute>
      </Attributes>
  </Cal>
</Job>

每个 <AAA> </AAA> 里可能包含更多的其他TAG。请问在C#里怎么读取每个TAG的信息阿?
例如
1.先分析 JOB里有几个CAL
2.每个CAL里有多少ATTRIBUTES
3.每个ATTRIBUES里有多少ATTRIBUES
3.读出每个 <ATTRIBUSES> </ATTRIBUESE>里的内容,然后分析。

好像可以用REGEX,不过没有用过好像语法挺复杂主要没时间看了,我试着用XPATH来分析不过有点问题是如果出现标记的嵌套,不知道如何处理。例如
<A1s>
    <A1> Hello
          <A1s>
                <A1> A </A1>
                <A1> B </A1>
                  ....
          </A1s>
    </A1>
</A1s>

有没有一种方法就是,一层一层的读,例如先分析根节点下的所有子节点,然后在分析每个节点,不过如果不知道到底有多少层,如何结束,没想好。大家给些例子吧!非常感谢!
回复次数:12
#1楼 得分:0回复于:2009-01-09 21:18:44
LINQ
#2楼 得分:0回复于:2009-01-09 21:19:19
试试正则表达式!!
#3楼 得分:0回复于:2009-01-09 21:58:36
up
#4楼 得分:0回复于:2009-01-09 22:04:59
Linq to Xml
#5楼 得分:0回复于:2009-01-09 22:47:52
学习
  • wangping_li用户头像
  • wangping_li
  • (总有一天,我星球上的人会来接我)
  • 等 级:
#6楼 得分:0回复于:2009-01-10 02:08:17
不知道多少级又没关系了,你直接取 <A1s> 节点包含的所有内容就行了
#7楼 得分:0回复于:2009-01-11 03:10:07
引用 6 楼 wangping_li 的回复:
不知道多少级又没关系了,你直接取  <A1s> 节点包含的所有内容就行了


用什么实现,能给个例子吗?PROJECT挺急得,谢谢
#8楼 得分:0回复于:2009-01-11 06:03:15

XmlDocument来读

XmlDocument xd=new ~

xd.Load("文件");
var v=xd.SelectNodes(xpathexpression);

复杂的用xpath表达式
#9楼 得分:0回复于:2009-01-11 08:21:45
如果使用c#的话,可以考虑用XmlNodeReader,具体怎么用在MSDN中有一个小例子,很简单
  • wb186用户头像
  • wb186
  • (WB)
  • 等 级:
#10楼 得分:0回复于:2009-01-11 08:40:56
呵呵 学习啦
  • lnpusky用户头像
  • lnpusky
  • (圖圕因囯)
  • 等 级:
#11楼 得分:0回复于:2009-01-11 11:52:24
引用 8 楼 ProjectDD 的回复:

XmlDocument来读

XmlDocument xd=new ~

xd.Load("文件");
var v=xd.SelectNodes(xpathexpression);

复杂的用xpath表达式

去看看XML语法和C#对XML文件操作的函数吧
  • journeydj用户头像
  • journeydj
  • (分无所谓,真的不会。)
  • 等 级:
#12楼 得分:0回复于:2009-01-14 11:19:36
为什么不弄成xml文件呢? 麻烦。。。 我只会一行一行读,然后判断。。。