哪为老师帮忙写个方法吧,xml属性读写的。

zl194 2011-02-08 09:23:43
环境VS2008SP1 ,xml文件如下:

<?xml version="1.0" encoding="utf-8" ?>
<khda>
<view>
<khid pshow="1" width="30"/>
<khname pshow="1" width="60"/>
</view>
</khda>


求两个方法:
1,读取给定节点的 某个属性。如给定节点:khda\view\khid,读取属性pswhow的值或width的值。
2,更改某给定节点的 某个属性。如给定节点:khda\view\khid,更改属性pswhow的值或width的值(当节点或属性不存在时,增加节点或属性。)。

非常感谢!


...全文
148 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl194 2011-04-22
  • 打赏
  • 举报
回复
不好意思,刚结贴。
全栈极简 2011-02-09
  • 打赏
  • 举报
回复
C#中操作XML的方式很多,给你一段很简单的代码,你可以在此基础上进行修改,这短代码已经过测试。

//取得属性的值
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load("test.xml");

XmlNode node = xmlDocument.SelectSingleNode("/khda/view/khid");

foreach (XmlAttribute item in node.Attributes)
{
MessageBox.Show(item.Value);
}

//更改属性的值
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load("test.xml");
XmlNode node = xmlDocument.SelectSingleNode("/khda/view/khname");

node.Attributes["pshow"].InnerText = "测试1";
node.Attributes["width"].InnerText = "测试2";

xmlDocument.Save("test.xml");
超级大笨狼 2011-02-09
  • 打赏
  • 举报
回复
Xpath是个小语法,要基本掌握。
zl194 2011-02-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyq11 的回复:]
http://topic.csdn.net/u/20110111/20/c576c655-c2ed-4665-b267-374a37213ad4.html
[/Quote]
还是挺难懂的,我再研究研究吧。
哪位老师有空,直接帮我写两个方法吧。
wuyq11 2011-02-08
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20110111/20/c576c655-c2ed-4665-b267-374a37213ad4.html
zl194 2011-02-08
  • 打赏
  • 举报
回复
另外更改怎么写呢,请吴老师再详解。
zl194 2011-02-08
  • 打赏
  • 举报
回复
Console.WriteLine(xn1.Attributes[""].Value);
这句是什么意思,是要便利所有属性吗,还是我把属性名写在""就可以一句搞定。
wuyq11 2011-02-08
  • 打赏
  • 举报
回复
string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
<khda>
<view>
<khid pshow=""1"" width=""30""/>
<khname pshow=""1"" width=""60""/>
</view>
</khda>";
XElement root = XElement.Parse(xml);
var query = root.Descendants("view").Elements("khid").Select(x => x.Attribute("width").Value).ToList();
foreach (string s in query)
Console.WriteLine(s);
30
wuyq11 2011-02-08
  • 打赏
  • 举报
回复
XmlDocument xml = new XmlDocument();
xml.Load("Test.xml");
XmlNode xn = xml.SelectSingleNode("khda/view");
foreach (XmlNode xn1 in xn.ChildNodes)
{
Console.WriteLine(xn1.Attributes[""].Value);
}
Console.ReadLine();
或XElement xe= XElement.Parse(xml);
var query = from x in xe.Descendants("")
select new
{
w=y.Attribute("width").Value,
...
};

110,588

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧