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
相关产品推荐
相关产品推荐

