You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 如何从XML字符串中提取指定Key属性的parameter节点值

解决方案

1. 先修正XML语法错误(否则加载直接失败)

原XML中<equity>节点存在两处语法问题:

  • 两个属性之间多了多余逗号
  • index属性值未加引号
    修正后的XML结构如下:
<equity location="New York" index="0">
  <bucket date="20211009">
    ...
  </bucket>
  <parameters>
    <parameter Key="ID">1234</parameter>
    <parameter Key="A">6</parameter>
    <parameter Key="B">22.5</parameter>
    <parameter Key="C">12</parameter>
    <parameter Key="BD">12,8,5</parameter>
  </parameters>
</equity>

2. 原有代码问题说明

你编写的代码存在3类错误:

  • 变量名拼写错误、方法名大小写不符合C#规范,xmmldoc.loadXML存在拼写和大小写问题
  • XPath轴名称大小写敏感,Descendant::首字母大写不符合规范,也可直接用更简洁的//代替后代节点查找逻辑
  • 节点取值逻辑错误,XML元素节点的Value属性默认返回null,需要取InnerText属性才能拿到节点包裹的文本值

3. 最终可运行代码

XmlDocument xmldoc = new XmlDocument();
// 修正拼写错误和方法名大小写
xmldoc.LoadXml(doc.content);

// 修正XPath,先判空避免空引用异常
XmlNode targetParam = xmldoc.SelectSingleNode("//parameters/parameter[@Key='B']");
if (targetParam != null)
{
    var key = targetParam.InnerText; // 此处key的值即为22.5
}

内容的提问来源于stack exchange,提问作者V1ct0r 6l0r1eux

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:09:01