怎么获得XML文件的总节点数?

[复制链接]
查看11 | 回复10 | 2021-1-27 06:17:47 | 显示全部楼层 |阅读模式

怎么获得总共有多少道菜?
还有新节点要怎么操作?
比如我要新增个黄瓜火腿什么的怎么写?命名规则要一样的....
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:17:47 | 显示全部楼层
//读取Xml
XmlDocumentXmlDoc=newXmlDocument();
using(MemoryStreamMs=newMemoryStream(File.ReadAllBytes("XMLFile1.xml")))
{
XmlDoc.Load(Ms);
//获得总共有多少道菜
stringFoods=string.Empty;
XmlNodeListlist=XmlDoc.SelectNodes("consumer")[0].ChildNodes;
for(inti=0;i
回复

使用道具 举报

千问 | 2021-1-27 06:17:47 | 显示全部楼层
引用1楼vb763305825的回复://读取Xml
XmlDocumentXmlDoc=newXmlDocument();
using(MemoryStreamMs=newMemoryStream(File.ReadAllBytes("XMLFile1.xml")))
{
XmlDoc.Load(Ms);
//获得总共有多少道菜
stringFoods=string.Empty;
XmlNodeListlist=XmlDoc.SelectNodes("consumer")[0].ChildNodes;
for(inti=0;i
你這是C#吧...
應該有不同的.
回复

使用道具 举报

千问 | 2021-1-27 06:17:47 | 显示全部楼层
强烈建议抛弃原来的xml操作api
使用xml.linq下面的XElement等api
这样直接linq操作各种方便
添加节点也方便很多
XElementxml=XElement.Load()直接加重文件.Parse()就是加重xml的string
然后添加就直接xml.add(newXElement(“food”))
多简单的操作啊。。。。。。
回复

使用道具 举报

千问 | 2021-1-27 06:17:47 | 显示全部楼层
引用3楼lhx527099095的回复:强烈建议抛弃原来的xml操作api
使用xml.linq下面的XElement等api
这样直接linq操作各种方便
添加节点也方便很多
XElementxml=XElement.Load()直接加重文件.Parse()就是加重xml的string
然后添加就直接xml.add(newXElement(“food”))
多简单的操作啊。。。。。。

引用3楼lhx527099095的回复:强烈建议抛弃原来的xml操作api
使用xml.linq下面的XElement等api
这样直接linq操作各种方便
添加节点也方便很多
XElementxml=XElement.Load()直接加重文件.Parse()就是加重xml的string
然后添加就直接xml.add(newXElement(“food”))
多简单的操作啊。。。。。。

你這還是C#啊....有木有VB的..
回复

使用道具 举报

千问 | 2021-1-27 06:17:47 | 显示全部楼层
引用3楼lhx527099095的回复:强烈建议抛弃原来的xml操作api
使用xml.linq下面的XElement等api
这样直接linq操作各种方便
添加节点也方便很多
XElementxml=XElement.Load()直接加重文件.Parse()就是加重xml的string
然后添加就直接xml.add(newXElement(“food”))
多简单的操作啊。。。。。。

因工作环境、一直都在.NET2.0下面写代码,2.0过后的新特性的没怎么用过,例如linq、lamda这些


楼主转一下就行了,C#和VB.NET只是写法不一样

回复

使用道具 举报

千问 | 2021-1-27 06:17:47 | 显示全部楼层
還是表示不懂...沒找到用什麽替代...

回复

使用道具 举报

千问 | 2021-1-27 06:17:47 | 显示全部楼层
引用6楼chenwei438907688的回复:還是表示不懂...沒找到用什麽替代...
同学写代码的人不会找资料是硬伤啊
msdn博客园csdn不都是资料么
http://msdn.microsoft.com/zh-cn/library/system.xml.linq.xelement(v=vs.100).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
仔细看下这个链接吧会对你有帮助的

回复

使用道具 举报

千问 | 2021-1-27 06:17:47 | 显示全部楼层
不是叫你转一下么。

'读取Xml
DimXmlDocAsNewXmlDocument()
UsingMsAsNewMemoryStream(File.ReadAllBytes("XMLFile1.xml"))
XmlDoc.Load(Ms)
'获得总共有多少道菜
DimFoodsAsString=String.Empty
DimlistAsXmlNodeList=XmlDoc.SelectNodes("consumer")(0).ChildNodes
ForiAsInteger=0Tolist.Count-1
Foods+=String.Format("{0}.{1}"&vbLf,i+1,list(i).InnerText)
Next
MessageBox.Show(Foods)
'增加新节点
DimNewNodeAsXmlNode=XmlDoc.CreateElement(String.Format("food{0}",list.Count+1))
NewNode.InnerText="黄瓜火腿"
XmlDoc.SelectNodes("consumer")(0).AppendChild(NewNode)
XmlDoc.Save("XMLFile1.xml")
EndUsing
这是帮你转好的,下次再说C#代码不会看自己到这里转换下

回复

使用道具 举报

千问 | 2021-1-27 06:17:47 | 显示全部楼层
LinqToXml自己动手找找吧,在资料充裕的情况问问题是浪费自己的时间。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行