我在字符串中有一个大的xml文档。确定xml是否形成良好的最佳方法是什么?
答案 0 :(得分:14)
类似的东西:
static void Main() {
Test("<abc><def/></abc>");
Test("<abc><def/><abc>");
}
static void Test(string xml) {
using (XmlReader xr = XmlReader.Create(
new StringReader(xml))) {
try {
while (xr.Read()) { }
Console.WriteLine("Pass");
} catch (Exception ex) {
Console.WriteLine("Fail: " + ex.Message);
}
}
}
如果您需要检查xsd,请使用XmlReaderSettings
。
答案 1 :(得分:4)
只需通过解析器运行即可。这将执行适当的检查(是否解析好)。
如果它是一个大文档(如图所示)那么基于事件的解析器(例如SAX)将是合适的,因为它不会将文档存储在内存中。
使用XML实用程序检查这类内容通常很有用。我使用XMLStarlet,它是用于XML检查/操作的命令行工具集。
答案 2 :(得分:3)
XmlReader似乎是一个不错的选择,因为它应该流式传输数据(不能一次性加载整个xml)
答案 3 :(得分:1)
尝试将XmlReader与XmlReaderSettings ConformanceLevel一起使用。文档集。