如何确定XML是否格式正确?

Pau*_*ulB 8 c# xml

我在一个字符串中有一个大的xml文档.确定xml是否形成良好的最佳方法是什么?

Mar*_*ell 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);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果您需要检查xsd,请使用XmlReaderSettings.


Bri*_*new 5

只需通过解析器运行它即可。这将执行适当的检查(是否解析正常)。

如果是大文档(如所示),则基于事件的解析器(例如SAX)将是适当的,因为它不会将文档存储在内存中。

经常使用XML实用程序来检查此类内容通常很有用。我使用XMLStarlet,这是用于XML检查/操作的命令行工具集。