2011-10-07 3 views
0

期待どおりのファイルにXml出力を取得できません。XmlDocumentスタイルの問題でプログラムでXmlNodeを作成する

私はこれ欲しい:

<Book id="RED" desc="All about the color." mmtype="NO">

</Book>

をしかし、私が得ることはこれです:

<Book id="RED" desc="All about the color." mmtype="NO" />

ノードを作成するための私のコードは次のとおりです。

XmlNode newNode = _xmlDocument.CreateElement("Book"); 
//Add Attributes 
XmlAttribute attrID = _xmlDocument.CreateAttribute("id"); 
attrID.Value = newBook.ID; 
newNode.Attributes.Append(attrID); 

XmlAttribute attrDesc = this._xmlDocument.CreateAttribute("desc"); 
attrDesc.Value = newBook.Description; 
newNode.Attributes.Append(attrDesc); 

XmlAttribute attrMmType = this._xmlDocument.CreateAttribute("mmtype"); 
attrMmType.Value = newBook.mmType; 
newNode.Attributes.Append(attrMmType); 

//Add new child node to parent 
parentNode.InsertBefore(newNode, parentNode.FirstChild); 

ブロックの結果を得るためにノードを別に設定する方法はありません。 保存する前にノードに子を追加する必要がありますか?しかし、この特定のノードには がありません。

ご協力いただければ幸いです。

+0

なぜ、子ノードがない場合は、そのように見える必要がありますか?本当に好奇心。 –

+0

私はXMLファイルの使用状況を鏡映するだけだと思います。私は既存のxmlファイルを編集しており、同じように見えたかった。既存のファイルを振り返って見ると、子供がいないノードはありません。だから私はそれを調べる必要があると思う。 – Sleff

答えて

2

<Tag />は、ショートフォームの<Tag></Tag>です。オープン/クローズ部分の間には何もありません。

XmlTextを空白で要素の子として追加することでこの問題を回避することはできますが、視覚的には最適ではない方法でフォーマットしているので、これは実際には無意味です。まともなXMLパーサーは、推奨される動作であるため、短い形式のタグを読み取ることができます。

+0

ありがとうございます、私は完全に受け入れられたタグの形を理解していますが、私がコードに間違っているかどうかは不思議でした。それは、子供を持つことと持たないことの違いのように見えます。あなたの答えは上にあった。 – Sleff

関連する問題