c# - 使用 XPath 的 SelectNodes 忽略节点名称中的大小写

标签 c# xml xpath case-insensitive selectsinglenode

我有一个类似于问题 SelectNodes with XPath ignoring cases 的问题但就我而言,大写/小写问题出在名称为“应用程序”的节点中(有时是“应用程序”,有时是“应用程序”)。

我将如何应用另一篇文章的解决方案?还是在这种情况下适用不同的方法?

xml:

<?xml version="1.0" encoding="utf-16" ?>
<application>
  <forms>
    <action type="update">
      <form uid="" >
      </form>
    </action>
  </forms>
</application>

在 C# 3.5 中:

XmlNode nodex= oXMLDoc1.SelectSingleNode("Application/forms/action/form/@uid")
nodex.Value="UniqueIDx";//nodex is null :S

最佳答案

我们可以将 xml 和我们的变量转换为小写。

string value = "aBc";
XmlNode xmlnode = xmldoc.SelectSingleNode(string.Format("/some/path/add[translate(@key, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = '{0}']", value.ToLower()));

关于c# - 使用 XPath 的 SelectNodes 忽略节点名称中的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11048628/

相关文章:

php - 解析 HTML 表格并提取数据

xml - 使用 Perl 解析 XML 文件

c# - UI测试文本框的修剪文本

c# - XML 字符串到 C# 中的 DataTable

c# - 有没有一种聪明的方法来处理 NuGet 中的包依赖关系?

javascript - 为什么 nodeName 有时在 javascript DOM 中全部大写?

java - XPATH表达式输出父节点和匹配的子节点,排除不匹配的子节点

c# 试图反转列表

c# - 如何在不使用 XElement 的情况下从自定义 XML 序列化/反序列化为 `Dictionary<int, string>`?

c# - 表示具有相同名称的 n 层深度嵌套 XML 节点的最佳方式?