xml读写的问题

minajo21 2003-08-06 02:01:36
文件如下:

<?xml version="1.0" ?>
- <!-- File Name:UserInfo.xml
-->
- <INVENTORY>
- <Info>
<UserID>001</UserID>
<Company>0</Company>
<Dispatch>4</Dispatch>
<ExtNo>1234</ExtNo>
<FromAcct>0</FromAcct>
<ToAcct>9999</ToAcct>
</Info>
</INVENTORY>

1.怎样读一个我想要的数据啊,比如UserID?
2.怎样修改呢?

看了半天帮助,一头雾水。
...全文
108 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
hawker1997 2003-08-11
  • 打赏
  • 举报
回复
public void LoadXml(string filename)
{
reader = new XmlTextReader (filename);
reader.WhitespaceHandling = WhitespaceHandling.None;
wfObject obj;
int count;
string str;

reader.Read();

while (true)
{
//0。循环出口
if (reader.EOF==true) break;
//1。读入流程属性数据
if (reader.IsStartElement("Flow"))
{
currFlow.LoadXML(ref reader);
}
//2。读入活动数据
if (reader.IsStartElement("ActivitySet"))
{
reader.MoveToFirstAttribute();
str=reader.Value;
count=Convert.ToInt32(str);
reader.MoveToElement();
reader.ReadStartElement("ActivitySet");
//加载活动集
for (int j=0;j<count;j++)
{
wfObjectSet.Add(wfo);
}
//if (count>0)
// reader.ReadEndElement();
objID=wfObjectSet.GetMaxID();
}
......
reader.Read();
}
reader.Close();
}
hawker1997 2003-08-11
  • 打赏
  • 举报
回复
public void SaveXml(string file)
{
XmlTextWriter w = new XmlTextWriter (file, null);
w.Formatting = Formatting.Indented;
wfObject wfo;
wfLinkObject wfl;
clsFlowData flowdata;

w.WriteStartDocument();
w.WriteStartElement("FlowDefine");
//1。写入流程对象
w.WriteStartElement("Flow");
currFlow.WriteXML(w);
w.WriteEndElement();
//2。写入活动对象
w.WriteStartElement("ActivitySet");
w.WriteStartAttribute("", "Count","");
w.WriteString(wfObjectSet.Count.ToString());
w.WriteEndAttribute();
Point pt;
for (int i=0;i<wfObjectSet.Count;i++)
{
wfo=(wfObject)wfObjectSet[i];
pt=new Point(this.AutoScrollPosition.X,this.AutoScrollPosition.Y);
wfo.Location.Offset(pt.X,pt.Y);
wfo.WriteXml(w);
}
w.WriteEndElement();
//5。写入FlowDefine的结束标志,以及文件结束标志
w.WriteEndElement();
w.WriteEndDocument();
w.Close();
}
hawker1997 2003-08-08
  • 打赏
  • 举报
回复
public void WriteXML(XmlWriter w)
{
w.WriteElementString("FlowID",iFid.ToString());
w.WriteElementString("Name",Name);
w.WriteElementString("Description",Description);
w.WriteElementString("Version",Version);
w.WriteElementString("Priority",Priority.ToString());
w.WriteElementString("Status",Status.ToString());
w.WriteElementString("Responsible",Responsible.ToString());
}
hawker1997 2003-08-08
  • 打赏
  • 举报
回复
public void LoadXML(ref XmlTextReader xmlRdr)
{
string strFlag;
string strData;
bool bEnd;

strFlag = "";
bEnd = false;
while (xmlRdr.Read() && !bEnd)
{
if (xmlRdr.NodeType == XmlNodeType.Element)
strFlag = xmlRdr.Name;

//循环退出标志
if (strFlag == "FlowEnd")
bEnd = true;


if (xmlRdr.NodeType == XmlNodeType.Text)
{
strData = xmlRdr.Value;
switch (strFlag)
{
case "FlowID":
Fid = Convert.ToInt32(strData);
break;
case "Name":
Name = strData;
break;
case "Description":
Description = strData;
break;
case "Version":
Version = strData;
break;
case "Priority":
Priority = Convert.ToInt32(strData);
break;
case "Status":
Status = Convert.ToInt32(strData);
break;
case "Responsible":
Responsible = Convert.ToInt32(strData);
break;
default:
break;
}
}
}
lihao9806 2003-08-08
  • 打赏
  • 举报
回复
我测试使用的是下面这段XML
<?xml version="1.0" ?>
<!-- File Name:UserInfo.xml-->
<INVENTORY>
<Info>
<UserID>001</UserID>
<Company>0</Company>
<Dispatch>4</Dispatch>
<ExtNo>1234</ExtNo>
<FromAcct>0</FromAcct>
<ToAcct>9999</ToAcct>
</Info>
</INVENTORY>
minajo21 2003-08-08
  • 打赏
  • 举报
回复
我怀疑是不是我xml文件的格式不对啊?
lihao9806 2003-08-08
  • 打赏
  • 举报
回复
using System;
using System.Xml;
namespace ConsoleApplication1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
XmlDocument XDoc = new XmlDocument();
XDoc.Load("UserInfo.xml");
XmlNode XNod = XDoc.DocumentElement.SelectSingleNode("//UserID");
string strResult = XNod.InnerText;
}
}
}
//这段代码绝对没问题!!!
minajo21 2003-08-08
  • 打赏
  • 举报
回复
你试过了,我怎么还是不行啊?
lihao9806 2003-08-08
  • 打赏
  • 举报
回复
XmlDocument XDoc = new XmlDocument();
XDoc.Load("UserInfo.xml");
XmlNode XNod = XDoc.DocumentElement.SelectSingleNode("//UserID");
string strResult = XNod.InnerText;
这回没问题了!! 呵呵~~~
lihao9806 2003-08-08
  • 打赏
  • 举报
回复
我再试一下
minajo21 2003-08-08
  • 打赏
  • 举报
回复
to hawker1997(小草)


怎么进参啊?不懂啊
minajo21 2003-08-06
  • 打赏
  • 举报
回复
up
minajo21 2003-08-06
  • 打赏
  • 举报
回复
有人帮忙吗?
Sean918 2003-08-06
  • 打赏
  • 举报
回复
up
nik_Amis 2003-08-06
  • 打赏
  • 举报
回复
up
minajo21 2003-08-06
  • 打赏
  • 举报
回复

还有,只是读了,怎么写啊?

谢谢!
minajo21 2003-08-06
  • 打赏
  • 举报
回复
to 雪狼

下载的那个例子不灵啊,内容都没读出来啊?
minajo21 2003-08-06
  • 打赏
  • 举报
回复
to 李昊

strResult为空啊,怎么回事?
moller3000 2003-08-06
  • 打赏
  • 举报
回复
XmlTextReader reader = new XmlTextReader("C:\\temp\\xmltest.xml");
while(reader.Read()){
if((reader.NodeType==XmlNodeType.Element)&(reader.Name=="UserID"))
{
reader.read();
Console.Write(reader.Value);
}
}
minajo21 2003-08-06
  • 打赏
  • 举报
回复
to 雪狼

有类似于下面的方法吗?不是按行来读
XmlDocument objXML=new XmlDocument();
objXML.LoadXml(m_xmlFileName);
XmlNode objRootsite=objXML.DocumentElement.SelectSingleNode("INVENTORY");
return objRootsite.ChildNodes[0].ChildNodes[0].Value;
加载更多回复(4)

111,120

社区成员

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

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

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