<?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有效
代码如下:
xmldoc.SelectNodes("/Root/Person/Results/Result");
我要是不知道这个 ”/Root/Person/Results/Result“ 结构 怎么处理?
@过客丶: 你想自己写xml解析器?
@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>
@过客丶: 你把问题复杂化了
@dudu: 怎么说 ?
@过客丶: 我觉得仅仅为了解决这不问题,没必要自己解析XML
@dudu: 我就是为了做个Xml解析器 但是不解析图片那些比较复杂的。
未知数据结构的数据是无意义的数据.对数据的任何操作都是在已知数据结构的情况下
那要写一个xml解析器怎么办? 你不可能知道别要传一个什么样结构的xml给你去解析吧
@过客丶: 这个时候已知的数据结构是XML语法.如果你不知道XML语法没办法解析XML.
跟你的问题一样,你的问题只是比这个高一级.知道XML语法了.也能根据XML语法解析XML文件
但是不知道XML文件里的数据的结构.然后你要使用这个XML中的数据,直接实现是不可能,只能绕弯子,通过一些手段来获取数据结构
这个扯远了.其实我不太看清楚你的问题.照着上面的意思你已经知道XML文件中的数据结构了.只是想做一个通用的是吗?
@吴瑞祥: 差不多是这个样子 我觉的如果用linq to xml 很麻烦 他要一层一层的去获取节点名称 做很多循环 或许是我不太熟悉的原因
@过客丶: 已经知道数据结构了.就照着数据结构用数据,就是linq2xml.
linq2xml操作xml应该是最方便的了.除非你定义一个实体类,让他自己反序列化.然后直接用对象.这样用起来会听方便的.嫌定义实体类麻烦,可以反序列化成动态类对象
http://msdn.microsoft.com/zh-cn/library/system.xml.xmlreader(v=vs.110).aspx
看这篇文章,XML 可以解析成 TREE 结构,你可以用 XmlReader 遍历此 XML(TREE),然后根据遍历输出的 Xml Node 的类型来确定该输出什么。
用XmlReader怎么读取属性名呢? 节点的文本值,属性值,节点名称我都能得到了,就是属性名称一直没办法得到?