C#批量整理Xml格式示例攻略
在进行Xml数据处理时,经常需要将Xml文档格式化整理以便于阅读。这里提供C#代码示例,将目录中所有的Xml文件都进行格式化整理。
流程
- 获取目录下的所有Xml文件。
- 循环遍历每个Xml文件,读取内容并进行格式化处理。
- 将处理后的内容写回到原文件中。
代码示例
using System;
using System.IO;
using System.Xml;
namespace XmlFormatTools
{
class Program
{
static void Main(string[] args)
{
string folderPath = @"C:\XmlFiles\"; // xml文件的目录路径
DirectoryInfo di = new DirectoryInfo(folderPath);
FileInfo[] files = di.GetFiles("*.xml"); // 获取目录下的xml文件
foreach (FileInfo file in files)
{
string xmlContent = File.ReadAllText(file.FullName);
XmlWriterSettings settings = new XmlWriterSettings
{
Indent = true,
NewLineOnAttributes = true
};
using (XmlWriter writer = XmlWriter.Create(file.FullName, settings))
{
XmlDocument doc = new XmlDocument();
try
{
doc.PreserveWhitespace = true;
doc.LoadXml(xmlContent);
doc.Save(writer);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
}
}
示例说明
示例1
假设目录中有以下三个Xml文件:
- a.xml
- b.xml
- c.xml
它们都具有类似以下的格式(这里只列出a.xml的内容):
<?xml version="1.0" encoding="UTF-8"?>
<root><person><name>Tom</name><age>25</age></person><person><name>Lily</name><age>20</age></person></root>
通过上述代码,运行后a.xml的内容会被改为格式化后的内容:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<person>
<name>Tom</name>
<age>25</age>
</person>
<person>
<name>Lily</name>
<age>20</age>
</person>
</root>
示例2
如果某个Xml文件格式不规范,代码中的try-catch语句能够忽略该文件的处理并且输出错误信息。比如以下是一个不规范的Xml文件,缺少了最后一个persons标签的闭合。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<persons>
<person><name>Tom</name><age>25</age></person>
<person><name>Lily</name><age>20</age></person>
</persons>
执行代码后,会输出错误信息:
Data at the root level is invalid. Line 4, position 1.
代码示例中的try-catch语句使得程序能够继续处理其他的Xml文件,而不中止整个程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#批量整理xml格式示例 - Python技术站