2009-05-28 63 views
1

如何获得此输出?输出具有属性的xml

<MSRP currency="USD">10.00</MSRP> 

writer.WriteElementString( “MSRP”,Convert.ToString(q.ItemPrice1));

writer.WriteAttributeString(“currency”,“MSRP”,“USD”);

这是错误:

令牌StartAttribute状态的内容会导致一个无效的XML文件内。

回答

5
writer.WriteStartElement("MSRP"); 
writer.WriteAttributeString("currency", "USD"); 
writer.WriteString(q.ItemPrice1.ToString()); 
writer.WriteEndElement(); 

当您调用WriteElementString时,它会一次写入整个元素 - 没有机会稍后添加属性。你必须用WriteStartElement打开元素,然后用WriteEndElement关闭它。

+1

我会去了解一下,也许使用XmlConvert类的ItemPrice1转换为数字的XML标准的字符串表示(除非你想在小数位的数量控制;“10.00”将被转换为10)。 – 2009-05-28 22:31:28

+0

q.ItemPrice1.ToString();不工作...必须使用Convert.ToString(q.ItemPrice1); – 2009-05-29 06:01:39

2

我相信这会做到这一点。

writer.WriteStartElement("MSRP"); 
writer.WriteAttributeString("currency", "USD"); 
writer.WriteValue("10.00"); 
writer.WriteEndElement(); 

documentation at msdn