使用XDocument时禁用XML验证我正在使用XDocument类来解析XLIFF文档。XDocument是否对我读入的内容执行一些验证,如果是这样-是否有任何方法可以禁用该验证?如果XLIFF不是有效的XML,我会得到奇怪的错误(我不在乎它是否不是,我只是想解析它)。例如'.',十六进制值0x00,是无效字符。我正在读取这样的文件:stringFileLocation=@"C:XLIFFtext.xlf";XDocumentdoc=XDocument.Load(FileLocation);谢谢。我有一个类似的问题,通过让StreamReader读取内容来解决。//这一行像你的一样抛出异常XDocumentxd=XDocument.Load(@"C:test.xml");//工作XDocumentxd=XDocument.Load(newSystem.IO.StreamReader(@"C:test.xml"));如果这没有帮助,请尝试包含正确的编码。如果要从字符串中删除不能在XML中使用的字符,可以使用此方法:",string.Empty);}根据XML标准,它会删除有效字符值集之外的任何字符。您无法解析无效的XML,因为解析需要有效的XML结构。当您以UTF-8或UTF-16格式读取文件并导致遇到问题时,可能是文件以ASCII格式读取。可能的方法:将文件读取为UTF-8。XLIFF文档是XML文档。字符0x00不是有效的XML字符。无效的XML不是XML,因此您无法使用XML解析器读取它。现在结构良好是另一回事,您可以使用SAX解析器来读取格式不正确但不是无效XML的XML。根据XML规范的有效字符:#x9|#xA|#xD|[#x20-#xD7FF]|[#xE000-#xFFFD]|[#x10000-#x10FFFF]更新建议的解决方案:预处理文件以删除无效字符。字符可以用空格替换,除非它有意义(二进制),在这种情况下它需要是Base64格式。以上就是C#学习教程:使用XDocument分享所有内容时禁用XML校验。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
