You need to enable JavaScript to run this app. C#如何从ASMX返回的XML字符串中提取<urun>和<fiyat>节点内容
优惠活动
大模型
产品
解决方案
定价
更多

C#如何从ASMX返回的XML字符串中提取<urun>和<fiyat>节点内容

实现方案

首先需要注意你提供的XML存在默认命名空间http://tempuri.org/,节点匹配时必须带上该命名空间,否则会出现读取不到内容的问题。

方案1:使用XmlReader实现(适配你当前已使用XmlReader的场景)

using System.Xml;

List<string> urunList = new List<string>();
List<string> fiyatList = new List<string>();
string defaultNs = "http://tempuri.org/";

// 此处替换为你自己的XmlReader实例,若读取接口响应流可直接传流到XmlReader.Create
using (XmlReader reader = XmlReader.Create("你的XML文件路径/接口响应流"))
{
    while (reader.Read())
    {
        // 匹配命名空间下的string节点
        if (reader.NodeType == XmlNodeType.Element && reader.LocalName == "string" && reader.NamespaceURI == defaultNs)
        {
            // 获取父节点名称判断所属分类
            reader.MoveToParent();
            string parentNodeName = reader.LocalName;
            reader.MoveToElement(); // 回到当前string节点
            
            string content = reader.ReadElementContentAsString();
            if (parentNodeName == "urun")
            {
                urunList.Add(content);
            }
            else if (parentNodeName == "fiyat")
            {
                fiyatList.Add(content);
            }
        }
    }
}

方案2:使用XDocument实现(代码更简洁,推荐)

如果允许使用LINQ to XML,代码可读性和开发效率更高:

using System.Xml.Linq;

XDocument xmlDoc = XDocument.Load("你的XML文件路径/接口响应流");
XNamespace defaultNs = "http://tempuri.org/";

// 提取urun下所有字符串
List<string> urunList = xmlDoc.Descendants(defaultNs + "urun")
                              .Elements(defaultNs + "string")
                              .Select(node => node.Value)
                              .ToList();

// 提取fiyat下所有字符串
List<string> fiyatList = xmlDoc.Descendants(defaultNs + "fiyat")
                               .Elements(defaultNs + "string")
                               .Select(node => node.Value)
                               .ToList();

内容的提问来源于stack exchange,提问作者NycroX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 12:27:00