问题描述
我正在为某种类型的 XML 制作一个 XML 解串器。我已经有了 one question regarding it :-) 那时我试图符合命名空间,我在示例文件中有。但事实是 - 我从许多不同的来源获得 XML。虽然它们基本上是相同的 XML,但其中一些遵循不同的命名空间,或者添加自己的冗余命名空间。这就是为什么我从代码中删除命名空间(在 XmlRoot 属性中)并使用以下代码忽略命名空间:
private Jpk DeserializeInputFile(string path)
{
Jpk obj;
var fileContent = File.ReadAllText(path);
using (TextReader textReader = new StringReader(fileContent))
{
using (XmlTextReader reader = new XmlTextReader(textReader))
{
reader.Namespaces = false;
XmlSerializer serializer = new XmlSerializer(typeof(Jpk));
obj = (Jpk)serializer.Deserialize(reader);
}
}
return obj;
}
现在我遇到了不同的情况。我收到了一个以以下根目录开头的 XML 文件:
<tns:JPK xmlns:etd="http://crd.gov.pl/xml/schematy/dziedziNowe/mf/2018/08/24/eD/DefinicjeTypy/" xmlns:tns="http://jpk.mf.gov.pl/wzor/2019/09/27/09271/">
尝试反序列化时出现以下异常:
system.invalidOperationException: XML 文档中存在错误 (1,57)。
---> system.invalidOperationException:
以前在根节点中没有命名空间。没有 tns:JPK,只有 JPK。 如何在根节点中忽略此命名空间?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)