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