首页 新闻 搜索 专区 学院

Xml 获取文本值 不一样的问题

0
悬赏园豆:20 [已解决问题] 解决于 2014-07-30 17:32
<?xml version="1.0" encoding="utf-8"?>
<Root>
    <Person IDCard="610424199902230099" >
        <Results>
            <Result>1</Result>
            <Result>1</Result>
            <Result>1</Result>
        </Results>
    </Person>
</Root>

如何获取<Result>1</Result>里的“1


content += XmlNode.Name + "Value:" + XmlNode.InnerText + "\r\n";

这句代码得到这样的结果 要怎么处理?

问题补充:

我是用C#  这个不用Linq  to  Xml   因为linq  只针对已知结构的Xml有效

过客丶的主页 过客丶 | 初学一级 | 园豆:5
提问于:2014-07-26 14:41
< >
分享
最佳答案
0

代码如下:

xmldoc.SelectNodes("/Root/Person/Results/Result");
收获园豆:10
dudu | 高人七级 |园豆:36500 | 2014-07-26 14:52

  我要是不知道这个 ”/Root/Person/Results/Result“ 结构 怎么处理?

过客丶 | 园豆:5 (初学一级) | 2014-07-26 14:54

@过客丶: 你想自己写xml解析器?

dudu | 园豆:36500 (高人七级) | 2014-07-26 14:55

@dudu:   差不多吧   先在能实现下面这种结构的  没有文本值   

<?xml version="1.0" encoding="utf-8"?>
<root name="中国">
  <province name="请选择省" postcode="100000" >
    <city name="请选择市" postcode="100100" >
      <area name="请选择区" postcode="100101" />
    </city>
  </province>
  <province name="北京市" postcode="110000" >
    <city name="市辖区" postcode="110100" >
      <area name="东城区" postcode="110101" />
      <area name="西城区" postcode="110102" />
      <area name="崇文区" postcode="110103" />
      <area name="宣武区" postcode="110104" />
      <area name="朝阳区" postcode="110105" />
      <area name="丰台区" postcode="110106" />
      <area name="石景山区" postcode="110107" />
      <area name="海淀区" postcode="110108" />
      <area name="门头沟区" postcode="110109" />
      <area name="房山区" postcode="110111" />
      <area name="通州区" postcode="110112" />
      <area name="顺义区" postcode="110113" />
      <area name="昌平区" postcode="110114" />
      <area name="大兴区" postcode="110115" />
      <area name="怀柔区" postcode="110116" />
      <area name="平谷区" postcode="110117" />
    </city>
    <city name="县" postcode="110200" >
      <area name="密云县" postcode="110228" />
      <area name="延庆县" postcode="110229" />
    </city>
  </province>
</root>
过客丶 | 园豆:5 (初学一级) | 2014-07-26 14:58

@过客丶: 你把问题复杂化了

dudu | 园豆:36500 (高人七级) | 2014-07-26 15:03

@dudu:      怎么说  ?

过客丶 | 园豆:5 (初学一级) | 2014-07-26 15:05

@过客丶: 我觉得仅仅为了解决这不问题,没必要自己解析XML

dudu | 园豆:36500 (高人七级) | 2014-07-27 12:59

@dudu:    我就是为了做个Xml解析器  但是不解析图片那些比较复杂的。

过客丶 | 园豆:5 (初学一级) | 2014-07-28 10:36
其他回答(2)
0

未知数据结构的数据是无意义的数据.对数据的任何操作都是在已知数据结构的情况下

收获园豆:5
吴瑞祥 | 园豆:29325 (高人七级) | 2014-07-26 14:48

    那要写一个xml解析器怎么办?  你不可能知道别要传一个什么样结构的xml给你去解析吧  

支持(0) 反对(0) 过客丶 | 园豆:5 (初学一级) | 2014-07-26 14:50

@过客丶: 这个时候已知的数据结构是XML语法.如果你不知道XML语法没办法解析XML.

跟你的问题一样,你的问题只是比这个高一级.知道XML语法了.也能根据XML语法解析XML文件

但是不知道XML文件里的数据的结构.然后你要使用这个XML中的数据,直接实现是不可能,只能绕弯子,通过一些手段来获取数据结构

这个扯远了.其实我不太看清楚你的问题.照着上面的意思你已经知道XML文件中的数据结构了.只是想做一个通用的是吗?

支持(0) 反对(0) 吴瑞祥 | 园豆:29325 (高人七级) | 2014-07-26 14:56

@吴瑞祥:   差不多是这个样子   我觉的如果用linq to xml 很麻烦   他要一层一层的去获取节点名称   做很多循环  或许是我不太熟悉的原因

支持(0) 反对(0) 过客丶 | 园豆:5 (初学一级) | 2014-07-26 15:00

@过客丶: 已经知道数据结构了.就照着数据结构用数据,就是linq2xml.

linq2xml操作xml应该是最方便的了.除非你定义一个实体类,让他自己反序列化.然后直接用对象.这样用起来会听方便的.嫌定义实体类麻烦,可以反序列化成动态类对象

支持(0) 反对(0) 吴瑞祥 | 园豆:29325 (高人七级) | 2014-07-26 15:41
0

http://msdn.microsoft.com/zh-cn/library/system.xml.xmlreader(v=vs.110).aspx

看这篇文章,XML 可以解析成 TREE 结构,你可以用 XmlReader 遍历此 XML(TREE),然后根据遍历输出的 Xml Node 的类型来确定该输出什么。

收获园豆:5
Launcher | 园豆:45045 (高人七级) | 2014-07-28 10:21

     用XmlReader怎么读取属性名呢?  节点的文本值,属性值,节点名称我都能得到了,就是属性名称一直没办法得到?

支持(0) 反对(0) 过客丶 | 园豆:5 (初学一级) | 2014-07-28 10:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册