在结束标记前添加XComment

本文关键字:添加 XComment 结束 | 更新日期: 2023-09-27 17:54:08

Visual Studio 2008。我正在使用System.Xml.Linq.

我正在编写一个XDocument XML文件,我想在XML元素之前或之后添加注释行。

由于某种原因,XML序列化器将注释插入到XML元素的中间。

// Create an XComment
//
string roleComment = string.Format("{0} Role ID={1}", myRole.roleType, myRole.roleId);
XComment xRoleComment = new XComment(roleComment);
// Create an XElement
//
XElement xRoleId = new XElement("Role_id", myRole.GUID);
// Add the XComment to the XElement
xRoleId.Add(xRoleComment);

我的输出意外地以结束标记前的注释结束:

<Role_id>2510<!--ROLE_TYPE_MASTER Role ID=130--></Role_id>

我如何添加注释,使其结束在元素标签之外?

在结束标记前添加XComment

您可以将该注释节点添加到Role_id元素的父元素。首先获取父元素,然后添加XComment。或者为Role_id创建父元素:

 XElement parent = new XElement("parent", 
            new XElement("Role_id", myRole.GUID), 
            new XComment(roleComment));

或使用XElement.AddAfterSelf方法:

xRoleId.AddAfterSelf(xRoleComment);