最近在写C# xml解析相关代码,遇到一个花了几个小时才解决得问题,记录下:
其实比骄傲简单,从一个xml里面读取数据,然后在从其中抽取自己想要得数据,然后写入另外一个xml中;
string readXml = File.ReadAllText(xmlPath);
foreach (var item_case in item_result_Info.Elements("AutoTest_CASE"))
{
testCase_Writer = new StreamWriter(new FileStream((testCase_NameFile), FileMode.Create));
testCase_Writer.WriteLine("<AutoTest_CASE>");
testCase_Writer.WriteLine("\t" + item_case.Element("/TestCase_Name"));
testCase_Writer.WriteLine("\t" + item_case.Element("TestCase_Index"));
}
重点在红色部分,报错原因提示xml异常,不能以"/"开头, 实际源xml文件中没有 “/TestCase_Name” ,是我手误多写了一个 "/"导致异常得。
解决方法:testCase_Writer.WriteLine("\t" + item_case.Element("TestCase_Name")); 即item_case.Element要确保 传值 是其中节点
同样写入数据可以 按照下面方式写入,不过没有上面方便简单:
testCase_Writer.WriteLine("\t<TestCase_Name>" + testCase_Name + "</TestCase_Name>");