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

C#中XElement创建带属性的PosXML节点报错问题求助

解决方案:正确添加XML节点属性

嘿,我知道问题出在哪了——你没正确使用XAttribute类来定义<PosXML>节点的version属性!直接把属性键值对塞进XElement构造函数会导致语法错误,因为属性需要用专门的类来声明。

正确的C#代码片段

// 假设summa是你定义的金额变量
decimal summa = 10;

XDocument doc = new XDocument(
    new XElement("PosXML",
        // 显式用XAttribute创建version属性
        new XAttribute("version", "7.2.0"),
        new XElement("ReadCardRequest",
            new XElement("Amount", summa.ToString()),
            new XElement("CurrencyName", "EUR")
        )
    )
);

错误原因说明

当你创建无属性的<PosXML>时,XElement的构造函数只接收子元素作为参数,语法完全合法。但要添加属性时,必须显式生成XAttribute实例并传入构造函数——属性和子元素都是XElement的参数,但属性需要用专用类定义,不能直接写字符串键值对。

验证生成的XML

运行上述代码后,生成的XML会完全匹配你的需求:

<PosXML version="7.2.0">
  <ReadCardRequest>
    <Amount>10</Amount>
    <CurrencyName>EUR</CurrencyName>
  </ReadCardRequest>
</PosXML>

内容的提问来源于stack exchange,提问作者Rein Kannumäe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:56:16