如何找到字符串格式错误的位置XML(在C#中)?

Joh*_*nyM 1 c# xml algorithm

我正在编写一个轻量级的XML编辑器,如果用户的输入格式不正确,我想向用户指出问题出在哪里,或者至少在第一个问题出现的地方.有谁知道现有的算法吗?如果看代码有帮助,如果我可以填写FindIndexOfInvalidXml方法(或类似的东西),这将回答我的问题.

using System;

namespace TempConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "<?xml version=\"1.0\"?><tag1><tag2>Some text.</taagg2></tag1>";
            int index = FindIndexOfInvalidXml(text);
            Console.WriteLine(index);
        }

        private static int FindIndexOfInvalidXml(string theString)
        {
            int index = -1;

            //Some logic

            return index;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Pse*_*ist 5

我可能只是作弊.:)这将为您提供一个行号和位置:

string s = "<?xml version=\"1.0\"?><tag1><tag2>Some text.</taagg2></tag1>";
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();

try
{
    doc.LoadXml(s);
}
catch(System.Xml.XmlException ex)
{
    MessageBox.Show(ex.LineNumber.ToString());
    MessageBox.Show(ex.LinePosition.ToString());
}
Run Code Online (Sandbox Code Playgroud)