C#学习教程:c#中不区分大小写的XML解析器分享


c#中不区分大小写的XML解析器

你用XML做的每件事都是区分大小写的,我知道。

但是,现在我发现自己处于一种情况,如果我以某种方式使xml名称/属性识别不敏感,我正在编写的软件会产生更少的错误。 不区分大小写的XPath将是一个神派。

在c#中有一个简单的方法/库吗?

XMl文档可以分别具有两个不同的元素: MyNamemyName – 它们是不同的。 将它们转换/处理为同名是一个可能产生严重后果的错误。

如果不是这种情况,那么这里有一个更精确的解决方案,使用XSLT将文档处理成只有小写元素名称和小写属性名称的文档:

                                

当此转换应用于任何XML文档时,例如

    Victor Hugo Victor Hugo French    Sophocles Greek   Leo Tolstoy Russian   Alexander Pushkin Russian   Plato Greek   

生成所需的正确结果(元素和属性名称转换为小写)

   Victor Hugo Victor Hugo French   Sophocles Greek   Leo Tolstoy Russian   Alexander Pushkin Russian   Plato Greek   

将文档转换为所需的表单后,即可对转换后的文档执行任何所需的处理。

您可以创建不区分大小写的方法(可用性扩展),例如:

 public static class XDocumentExtensions { public static IEnumerable ElementsCaseInsensitive(this XContainer source, XName name) { return source.Elements() .Where(e => e.Name.Namespace == name.Namespace && e.Name.LocalName.Equals(name.LocalName, StringComparison.OrdinalIgnoreCase)); } } 

XML是文本。 只需在加载到您正在使用的任何解析器之前将其降低。

只要您不必对模式进行validation并且不介意值全部为小写,这应该可以正常工作。


事实是任何XML解析器区分大小写。 如果不是,它将不是XML解析器。

我首先将所有标签和属性名称转换为小写,通过使用SAX解析保持值不变,即。 使用XmlTextReader

上述就是C#学习教程:c#中不区分大小写的XML解析器分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/958177.html

(0)
上一篇 2021年11月22日 上午11:20
下一篇 2021年11月22日 上午11:23

精彩推荐

发表评论

您的电子邮箱地址不会被公开。