C# 两个XMLs的比较-“;“路径中的非法字符”;

C# 两个XMLs的比较-“;“路径中的非法字符”;,c#,xml,xmldiff,C#,Xml,Xmldiff,当我尝试使用MS API(XmlDiffPatch)中的比较函数时,它给了我一个错误“路径中的非法字符” 这是我的代码: public void CompareXMLStructer(string a, string b) { try { using (var fs = new FileStream(@"C:\Test\result.xml", FileMode.OpenOrCreate, File

当我尝试使用MS API(XmlDiffPatch)中的比较函数时,它给了我一个错误“路径中的非法字符”

这是我的代码:

 public void CompareXMLStructer(string a, string b)
        {
            try
            {
                using (var fs = new FileStream(@"C:\Test\result.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite))
                {
                    var diffWriter = XmlWriter.Create(fs);
                    var xmlDiff = new XmlDiff(XmlDiffOptions.IgnoreChildOrder |
                                              XmlDiffOptions.IgnoreNamespaces |
                                              XmlDiffOptions.IgnorePrefixes);
                    var identical = xmlDiff.Compare(a, b, false, diffWriter);
                    MessageBox.Show(identical ? "YES" : "NO");
                    diffWriter.Close();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
例外情况:

Exception thrown: 'System.ArgumentException' in mscorlib.dll
System.ArgumentException: Niedozwolone znaki w ścieżce. //<-That means Illegal expresion in path
   w System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
   w System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   w System.IO.Path.GetFullPathInternal(String path)
   w System.Xml.XmlResolver.ResolveUri(Uri baseUri, String relativeUri)
   w System.Xml.XmlUrlResolver.ResolveUri(Uri baseUri, String relativeUri)
   w System.Xml.XmlTextReaderImpl..ctor(String url, XmlNameTable nt)
   w System.Xml.XmlTextReader..ctor(String url)
   w Microsoft.XmlDiffPatch.XmlDiff.OpenDocuments(String sourceFile, String changedFile, XmlReader& sourceReader, XmlReader& changedReader)
   w Microsoft.XmlDiffPatch.XmlDiff.Compare(String sourceFile, String changedFile, Boolean bFragments, XmlWriter diffgramWriter)
   w WindowsFormsApplication1.Comparision.CompareXMLStructer(String a, String b) w C:\Users\zos-srv\documents\visual studio 2015\Projects\Porownywarka\WindowsFormsApplication1\Comparision.cs:wiersz 44
The thread 0x1334 has exited with code 0 (0x0).
在mscorlib.dll中引发异常:“System.ArgumentException”

系统参数例外:Niedozwolone znaki wścieżce// 正如您在堆栈跟踪中所看到的,
xmlDiff.Compare(string,string,…)
accept路径的前两个字符串,而不是XML字符串


我不知道这个库的文档存放在哪里,所以我不知道是否有
Stream
重载。如果没有,只需暂时将文件写入磁盘。

正如您可以在堆栈跟踪中读取的那样,
xmlDiff.Compare(string,string,…)
的前两个字符串接受路径,而不是XML字符串

我不知道这个库的文档存放在哪里,所以我不知道是否有
Stream
重载。如果没有,只需将文件临时写入磁盘即可

        a   "<?xml version=\"1.0\" encoding=\"Windows-1250\"?>\r\n<Dokument idDokumentu=\"6183457\" numer=\"32178.2015\" idSprawy=\"6187041\" wersja=\"1\" dataDokumentu=\"2015-09-09T00:00:00\" numerObcy=\"\" rodzajObcy=\"\" idObcy=\"\" vidObcy=\"\" wersjonowanie=\"0\" statusBIP=\"E\" korespSystemWew=\"N\" nrWgRejestru=\"\" system=\"EDOKUMENT\" oznWysylka=\"true\" wysylka=\"false\" odbiorOsobisty=\"false\" kopia=\"false\" kodKreskowy=\"\" dostep=\"1\" format=\"\" typ_dublin_core_metadata=\"8\" rwa=\"0003\" znakDokumentu=\"\" obcy=\"false\" odwzorowanie=\"\" znak_sprawy_alt=\"\" kat_arch=\"A\" idDokumentuPierw=\"0\" numerWSprawie=\"4\" czySaUwagi=\"false\" ntas=\"false\" idSkladuChronologicznego=\"0\" zatwierdzonyUzytk=\"true\">\r\n  <Opis>\r\n    <![CDATA[Testowy dokument]]>\r\n  </Opis>\r\n  <Notatka>\r\n    <![CDATA[]]>\r\n  </Notatka>\r\n  <Typ idTypu=\"12938\" nazwa=\"OR Inne\" kategoriaBIP=\"\" sciezkaBIP=\"\" podlegaZatwierdzaniu=\"true\" czyBip=\"false\"/>\r\n  <Status idStatusu=\"0\" nazwa=\"\"/>\r\n  <Podmiot idPodmiotu=\"6183458\" typPodmiotu=\"G\" idPodmiotuExt=\"5573\" rodzajPodmiotu=\"K\" imie=\"\" nazwisko=\"\" nazwaFirmy=\"Rekord Systemy Informatyczne Sp.z o.o.\" nazwaSkroconaFirmy=\"REKORD\" PESEL=\"\" NIP=\"\" REGON=\"\" idZewnetrzne=\"\" rodzajPodmiotuExt=\"F\" email=\"\">\r\n    <Adres kodPocztowy=\"43-300\" miasto=\"Bielsko-Biała\" ulica=\"Kasprowicza\" numerDomu=\"5\" numerLokalu=\"\" kraj=\"Polska\" adresSkrytki=\"\" dzielnica=\"\" skrytkaPocztowa=\"\" adresZagraniczny=\"false\"/>\r\n  </Podmiot>\r\n  <Folder idFolderu=\"4823\" nazwa=\"MIROSŁAW ZIAJA\"/>\r\n  <Utworzenie symbolPracownika=\"216\" nazwisko=\"ZIAJA\" imie=\"MIROSŁAW\" data=\"2015-09-09T11:48:36\"/>\r\n  <Dysponenci>\r\n    <Dysponent ident=\"6183461\" symbolPrac=\"216\" nazwisko=\"MIROSŁAW ZIAJA\" imie=\"\" wiodacy=\"true\" tylko.do.odczytu=\"false\" obcyId=\"\" obcyLogin=\"\" stanowisko=\"Inspektor (OR-o)\" rodzaj=\"P\"/>\r\n  </Dysponenci>\r\n  <Zatwierdzenia>\r\n    <Zatwierdzenie data=\"2015-09-14T14:24:44\" rodzaj=\"1\" czyBlokuje=\"true\" kierownicze=\"false\">\r\n      <Pracownik symbolPracownika=\"216\" nazwisko=\"ZIAJA\" imie=\"MIROSŁAW\" stanowisko=\"\" stanowiskoIdent=\"0\" pracIdent=\"216\" funkcjaIdent=\"0\"/>\r\n    </Zatwierdzenie>\r\n  </Zatwierdzenia>\r\n</Dokument>\r\n"