社区
C#
帖子详情
C#取XML节点值的问题
PeterSong9970
2009-09-15 09:40:56
C#取XML节点
里面很多节点,层次很乱,而且格式不固定,比如说我想先取节点table下的td节点的数据内容(这个td的层次也不固定),应该怎么写?
我发现XmlNode没有GetElementsByTagName()函数啊。
...全文
318
24
打赏
收藏
C#取XML节点值的问题
C#取XML节点 里面很多节点,层次很乱,而且格式不固定,比如说我想先取节点table下的td节点的数据内容(这个td的层次也不固定),应该怎么写? 我发现XmlNode没有GetElementsByTagName()函数啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xie_yanke
2009-09-15
打赏
举报
回复
除错,就靠你自己了。俺负责完成你的要求。:D
如果城市下必然有此节点, 那么, node.selectsinlenode("穿衣指数");
大致如此。
PeterSong9970
2009-09-15
打赏
举报
回复
[Quote=引用 18 楼 spg2003 的回复:]
SelectNodes("//城市");
这个方法是不是只对XmlDoc起作用,对node就没作用了?
[/Quote]
node.SelectSingleNode("//穿衣指数");
这么用是不是有问题?就是这里取不到正确的值。
node是一个节点,下面只会有一个“穿衣指数”节点,所以我用了SelectSingleNode()。
xie_yanke
2009-09-15
打赏
举报
回复
NO, 对node一样有效。
我是用网页写的,如果你是SOFT,那么。
List<string> levelList = new List<string>();
foreach(System.Xml.XmlNode node in list)
{
levelList.add(node.FirstChild.Value.Split(new string[]{" "}, StringSplitOptions.RemoveEmptyEntries)[0]);
}
填入List,你再处理好了。如果要加城市名, 你可以用List<string[]>, 也可以用Dic.
PeterSong9970
2009-09-15
打赏
举报
回复
SelectNodes("//城市");
这个方法是不是只对XmlDoc起作用,对node就没作用了?
PeterSong9970
2009-09-15
打赏
举报
回复
Response是什么?
PeterSong9970
2009-09-15
打赏
举报
回复
我在用C#写个程序来处理XML数据。
xie_yanke
2009-09-15
打赏
举报
回复
你是说SOFT吧?
xie_yanke
2009-09-15
打赏
举报
回复
我写的不是C#?
PeterSong9970
2009-09-15
打赏
举报
回复
C#如何实现?
xie_yanke
2009-09-15
打赏
举报
回复
。。。。
System.Xml.XmlNodeList list = doc.SelectNodes("//产品//穿衣指数");
foreach(System.Xml.XmlNode node in list)
{
Response.Write(node.FirstChild.Value.Split(new string[]{" "}, StringSplitOptions.RemoveEmptyEntries)[0]);
Response.Write("<br/>");
}
PeterSong9970
2009-09-15
打赏
举报
回复
我想要得到的是 每个城市的穿衣指数的等级值。
xie_yanke
2009-09-15
打赏
举报
回复
想要什么结果?
PeterSong9970
2009-09-15
打赏
举报
回复
<产品>
<指数预报>
<城市 名称="54511">
<预报 起报时间="2008-04-02 08:00:00">
<穿衣指数>6级 凉 天气凉,建议着厚外套加毛衣等春秋服装。体弱者宜着大衣、呢外套。因昼夜温差较大,注意增减衣服。</穿衣指数>
<雨伞指数>1级 不带伞 天气晴好,阳光明媚,您在出门的时候无须带雨伞。</雨伞指数>
<晾晒指数>3级 基本适宜 天气晴朗,午后温暖的阳光仍能满足你驱潮消霉杀菌的晾晒需求。</晾晒指数>
<逛街指数>2级 较不宜 天气晴朗,阳光灿烂,但风力很大,较不适宜逛街,若坚持出门,请选择避风地点,采取适当防风措施。</逛街指数>
<紫外线强度指数>3级 中等 属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。</紫外线强度指数>
<晨练指数>2级 较适宜 早晨气象条件较适宜晨练,但风力稍大,晨练时请注意选择避风的地点,避免迎风锻炼。</晨练指数>
<啤酒指数>2级 较不适宜 您将会感到有些凉意,建议饮用常温啤酒,并少量饮用为好。</啤酒指数>
<空调开启指数>5级 开启制暖空调 您将感到有些冷,可以适当开启制暖空调调节室内温度,以免着凉感冒。</空调开启指数>
<舒适度指数>6级 较舒适 白天天气晴好但风力较强,早晚会感觉偏凉,午后舒适、宜人。</舒适度指数>
<洗车指数>2级 较适宜 较适宜洗车,未来持续两天无雨,但考虑风力较大,擦洗一新的汽车会蒙上灰尘。</洗车指数>
<感冒指数>3级 易发 天冷风大且昼夜温差也很大,易发生感冒,请注意适当增减衣服。</感冒指数>
<中暑指数>0级 无 温度不高,其他各项气象条件适宜,中暑机率极低。</中暑指数>
<污染条件指数>2级 良 气象条件有利于空气污染物稀释、扩散和清除,可在室外正常活动。</污染条件指数>
<旅游指数>3级 一般 晴天,天凉,加上4到5级的风,将给您的旅游带来些不便,旅游指数一般,建议您有选择性地到一些景点游玩。</旅游指数>
<风寒指数></风寒指数>
</预报>
</城市>
<城市 名称="54527">
<预报 起报时间="2008-04-02 08:00:00">
<穿衣指数>6级 凉 天气凉,建议着厚外套加毛衣等春秋服装。体弱者宜着大衣、呢外套。因昼夜温差较大,注意增减衣服。</穿衣指数>
<雨伞指数>1级 不带伞 天气晴好,阳光明媚,您在出门的时候无须带雨伞。</雨伞指数>
<晾晒指数>4级 不太适宜 风太大,不太适宜晾晒,如果非晾晒不可,请注意选择防风的地点晾晒并夹牢衣物。</晾晒指数>
<逛街指数>2级 较不宜 天气晴朗,阳光灿烂,但风力很大,较不适宜逛街,若坚持出门,请选择避风地点,采取适当防风措施。</逛街指数>
<紫外线强度指数>3级 中等 属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。</紫外线强度指数>
<晨练指数>3级 较不宜 风力较大,较不宜晨练,建议年老体弱人群适当减少晨练时间,若坚持室外锻炼,请选择避风的地点。</晨练指数>
<啤酒指数>2级 较不适宜 您将会感到有些凉意,建议饮用常温啤酒,并少量饮用为好。</啤酒指数>
<空调开启指数>5级 开启制暖空调 您将感到有些冷,可以适当开启制暖空调调节室内温度,以免着凉感冒。</空调开启指数>
<舒适度指数>6级 较舒适 白天天气晴好但风力较强,早晚会感觉偏凉,午后舒适、宜人。</舒适度指数>
<洗车指数>2级 较适宜 较适宜洗车,未来持续两天无雨,但考虑风力较大,擦洗一新的汽车会蒙上灰尘。</洗车指数>
<感冒指数>3级 易发 天冷风大且昼夜温差也很大,易发生感冒,请注意适当增减衣服。</感冒指数>
<中暑指数>0级 无 温度不高,其他各项气象条件适宜,中暑机率极低。</中暑指数>
<污染条件指数>1级 优 气象条件非常有利于空气污染物稀释、扩散和清除,可在室外正常活动。</污染条件指数>
<旅游指数>4级 较不宜 大风天气可能会对您的出行造成影响,较不适宜外出旅游,外出时请注意防风呦!</旅游指数>
<风寒指数></风寒指数>
</预报>
</城市>
xie_yanke
2009-09-15
打赏
举报
回复
贴XML片断,以及你想要的结果。
PeterSong9970
2009-09-15
打赏
举报
回复
string CityNo;
string IndexVal;
//
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(filename);
//根据指定路径获取节点
XmlNodeList nds = xmlDoc.SelectNodes("//城市");
if (nds.Count > 0)
{
foreach (XmlNode nd in nds)
{
CityNo = nd.Attributes["名称"].Value;
num = CityNo;
XmlNode node = nd.SelectSingleNode("//穿衣指数");
if (node.InnerText != "")
{
IndexVal = node.InnerText.Substring(0, 1);
MessageBox.Show(CityNo + ":" + IndexVal);
}
}
}
我这段代码的结果不对,IndexVal = node.InnerText.Substring(0, 1);得到的值不正确。
xie_yanke
2009-09-15
打赏
举报
回复
selectNodes("//table//td");
duanfengo7
2009-09-15
打赏
举报
回复
学习.
xie_yanke
2009-09-15
打赏
举报
回复
错了,我试试先。
xie_yanke
2009-09-15
打赏
举报
回复
selectNodes("//table/td");
PeterSong9970
2009-09-15
打赏
举报
回复
[Quote=引用 1 楼 xie_yanke 的回复:]
selectNodes("//td"); //取所有td所点集合
[/Quote]
我要取table下的td,不是全部的。
加载更多回复(3)
C#
读
取
XML
的
节点
,以及属性
C#
读
取
XML
相关
节点
,属性,修改
XMl
Linq to
xml
,读
取
XMl
节点
值
Linq to
xml
,读
取
XMl
节点
值
,linq,读
取
XMl
节点
值
绑定。
C#
动态加载
XML
文件,并更改
节点
属性
值
C#
通过动态加载
XML
文件,更改
XMl
文件中
节点
的属性
值
,然后保存
XML
文件
C#
通过
XML
节点
属性/属性
值
读
取
写入
XML
操作代码实例
本文主要介绍
C#
通过
XML
节点
属性、属性
值
对
XML
的读
取
,写入操作,大家参考使用吧
C#
序列化与反序列化(包括复杂
xml
对象)
C#
xml
序列化及反序列化(解析
xml
为对象及对象转
xml
保存),方法一反序列化
取
节点
KV
值
,方法二反序列化
取
节点
标签
值
,方法三
取
节点
KV
值
,并增加
节点
对象数组及
节点
标签组合反序列化
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章