2009-05-28 11 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

を参照してください。「10.00」わずか10に変換されます)。 –

+0

q.ItemPrice1.ToString();動作しません... Convert.ToString(q.ItemPrice1);を使用する必要があります。 –

+0

ItemPrice1プロパティの型は何ですか? Convert.ToStringメソッドはほとんどの型のToStringを呼び出します。 –

2

私はこれがトリックを行うと信じています。

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

私は多分あなたは小数点以下の桁数を制御したい場合を除き数(ののXml準拠した文字列表現にItemPrice1を変換するXmlConvertクラスを使用してになりますdocumentation at msdn

+0

何が良い、writevalueまたはwritestringですか? –

+0

実際、私はそれが問題ではないと思っています。コンパイラがあなたが文字列を書いていることを知っている限り。 WriteValueはより柔軟で、DOMElement.NodeValueに近い音を出します。 – Kris

関連する問題