C#如何读取节点xml中的单个项目

标签 c# xml namespaces key

我有 xml 文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><SENT_110 xmlns:ns2="http://www.mf.gov.pl/SENT/2017/01/18/STypes.xsd" xmlns="http://www.mf.gov.pl/SENT/2017/01/18/SENT_110.xsd"><SentNumber>SENT20180416000032</SentNumber><KeyNumber><ns2:SenderKey>KS-28YM</ns2:SenderKey><ns2:RecipientKey>KR-52DH</ns2:RecipientKey><ns2:CarrierKey>KD-48WW</ns2:CarrierKey></KeyNumber>

我想在单独的 SenderKey、RecipientKey 和 CarrierKey 中阅读。
当我使用此代码时:
        XmlTextReader reader = new XmlTextReader(file);
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(reader);
        XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
        nsmgr.AddNamespace("ns", xmlDoc.DocumentElement.NamespaceURI);
          XmlNodeList nodeList = xmlDoc.SelectNodes("/ns:SENT_110/ns:KeyNumber", nsmgr);
          foreach (XmlNode node in nodeList)
          {
            key = node.InnerText;
            MessageBox.Show(key);
          }

我有这样的东西:KS-28YMKR-52DHKD-48WW,没有任何分开的 key 。
我怎么只能读取一个键?

最佳答案

使用以下 XPath:

"/ns:SENT_110/ns:KeyNumber/*"

它会将所有嵌套节点返回给您。

关于C#如何读取节点xml中的单个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49979588/

相关文章:

java - 如何在按下 ImageView 时立即启动音频?

java - hsqldb 的 spring applicationContext 中的数据源

php - Laravel 基于var 调用静态函数

Python 命名空间 : How to make unique objects accessible in other modules?

c# - Datastax C# 驱动程序中的 Cassandra timeuuid

c# - 为什么 ContextMenu Command 和 CommandParameter 在 DataGrid 中不起作用

c# - 循环内的外部变量如何与 lambda 一起使用?

xml - magento 2 如何向 di.xml 上的数组添加新值

c# - 在 C# 中解决此问题的最佳线程方法是什么?

python从另一个文件加载类名总是失败