在XmlDocument样式问题中以编程方式创建Xml节点

时间:2011-10-07 23:38:31

标签: c# .net xml forms

我无法将Xml输出转换为我期望的文件。

我想要这个:

<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);

我没有看到如何以不同方式设置节点以获得块结果。 也许我需要在节点之前添加一个子节点到节点?但我没有 对于这个特定的节点。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

<Tag /><Tag></Tag>的缩写形式,其中打开/关闭部分之间没有任何内容。

你可以通过添加一个空格作为元素的子XmlText来解决这个问题,但是从长远来看,这实际上是没有意义的,因为你只是在视觉上以非最佳方式对它进行格式化办法。任何体面的XML Parser都应该能够读取短格式标签,因为它是推荐的行为。