Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 强制XML具有结束标记?_Wpf_Xml_Silverlight - Fatal编程技术网

Wpf 强制XML具有结束标记?

Wpf 强制XML具有结束标记?,wpf,xml,silverlight,Wpf,Xml,Silverlight,我有一个创建XDocument的代码,在其中,我使用System.Xml.Linq类添加了XElements。唯一的问题是,如果xml节点没有值,它将返回一个已经关闭的标记。i、 e <Title /> 但我在创建一个显示开始标记和结束标记的XML方面取得了一定的成就。i、 e <Title></Title> 即使它没有价值。有没有办法让它看起来像这样 注意:我将此代码保存在数据库中,在一个接受数据类型xml的表列下,因此添加一个字符串。Empt

我有一个创建XDocument的代码,在其中,我使用System.Xml.Linq类添加了XElements。唯一的问题是,如果xml节点没有值,它将返回一个已经关闭的标记。i、 e

 <Title />

但我在创建一个显示开始标记和结束标记的XML方面取得了一定的成就。i、 e

<Title></Title>

即使它没有价值。有没有办法让它看起来像这样


注意:我将此代码保存在数据库中,在一个接受数据类型xml的表列下,因此添加一个字符串。Empty在数据库上关闭,所以FML。有什么想法吗?

试着用
字符串设置标记的值。Empty
你可以使用
[xmlement(IsNullable=true)]
属性用
xsi:nil=“true”
表示空值,这是我能得到的最接近的结果

我能找到的唯一替代方法是创建XML文件,然后使用StreamReader和StreamWriter将完成的XML文档加载到StreamReader的字符串中,使用
Replace()
方法查找每个可能为空的标记,并将其替换为开始标记和结束标记,然后使用StreamWriter用新字符串覆盖XML文件


尝试使用
为XmlNode的
InnerText
赋值。此操作显然会使其扩展为
形式。

使用XDocument.WriteTo方法将XDocument写入XmlWriter。实现一个自定义XmlWriter,它封装通过XmlWriter.Create获得的标准XmlWriter,并将自定义XmlWriter传递给WriteTo方法

自定义XmlWriter只需通过未修改的方式将所有调用传递给包装的XmlWriter,WriteEndElement方法除外,该方法应为:

    public override void WriteEndElement()
    {
        wrapped.WriteFullEndElement();
    }

就XML而言,编写该元素的两种方法是等效的。任何处理XML的工具都不应该在其中一个上绊倒。不幸的是,客户端希望看到开始和结束标记,所以我遇到了一个大问题。