我做的是一个简单的xml操作的实验
xml格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<Root>
<Man>
<Name>XiaoBei</Name>
<Age>25</Age>
<IsMale>False</IsMale>
</Man>
</Root>操作程序: class XmlHelper
{
public void writeXML()
{
XmlDocument myXmlDoc = new XmlDocument();
myXmlDoc.Load("config.xml");
XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Man").ChildNodes; //出现异常
foreach (XmlNode xnf in nodeList)
{
xnf.Attributes["value"].Value = "123";
}
myXmlDoc.Save("config.xml");
}
}为什么在运行程序时每次到“XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Man").ChildNodes;”这一句时就抛出异常“未将对象引用设置到对象的实例。”未处理NullReferenceException
不知道问题出在哪里,在这里先谢谢各位啦
xml格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<Root>
<Man>
<Name>XiaoBei</Name>
<Age>25</Age>
<IsMale>False</IsMale>
</Man>
</Root>操作程序: class XmlHelper
{
public void writeXML()
{
XmlDocument myXmlDoc = new XmlDocument();
myXmlDoc.Load("config.xml");
XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Man").ChildNodes; //出现异常
foreach (XmlNode xnf in nodeList)
{
xnf.Attributes["value"].Value = "123";
}
myXmlDoc.Save("config.xml");
}
}为什么在运行程序时每次到“XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Man").ChildNodes;”这一句时就抛出异常“未将对象引用设置到对象的实例。”未处理NullReferenceException
不知道问题出在哪里,在这里先谢谢各位啦
应该先找root再定位Man
foreach 是想修改所有子节点的内容啊
XmlDocument myXmlDoc = new XmlDocument();
myXmlDoc.Load("config.xml");
XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Root/Man").ChildNodes; //出现异常
foreach (XmlNode xnf in nodeList)
{
if (xnf.Name == "Name")
{
xnf.InnerText = "Ranen";
}
}
myXmlDoc.Save("config.xml");
myXmlDoc.Load("config.xml");
XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Root/Man").ChildNodes; //出现异常
foreach (XmlNode xnf in nodeList)
{
if (xnf.Name == "Name")
{
xnf.InnerText = "Ranen";
}
}
myXmlDoc.Save("config.xml");
{
XmlDocument myXmlDoc = new XmlDocument();
myXmlDoc.Load("config.xml");
XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Root").ChildNodes; //出现异常
foreach (XmlNode xnf in nodeList)
{
xnf.Attributes["value"].Value = "123";
}
myXmlDoc.Save("config.xml");
}
class XmlHelper
{
public void writeXML(string nodename,string content)
{
string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
XmlDocument myXmlDoc = new XmlDocument();
myXmlDoc.Load( path+"\\config.xml");
XmlNode root = myXmlDoc.DocumentElement;
XmlNodeList nodeList = root.SelectSingleNode("Man").ChildNodes;
foreach (XmlNode xnf in nodeList)
{
if (xnf.Name == nodename)
{
xnf.InnerText = content;
}
}
myXmlDoc.Save(path + "\\config.xml");
}
}