默认情况下,
someXmlWriter.WriteElementString("my-tag", someString);
生成<my-tag />
我查看了类,寻找可能迫使作者生成<my-tag></my-tag>
的可能选项,但没有找到任何东西。
有没有一种简单的方法可以强制使用“打开标签,关闭标签”而不是简写形式来发布空元素?
编辑
是!我意识到关于XML有效性,这两个符号是等价的,有效的,并且都是...但是,我正在使用遗留代码,这些代码使用Read()来解析这样的XML,即在节点级别(!)并在空节点上通过Read()-ing来搞乱...
因此,我的问题出现在限制对此遗留代码的更改数量的上下文中。这个问题确实像建议的那样与this SO question重叠;但是,那里提供的选项都不容易适用于我的情况。
发布于 2012-07-11 21:23:16
这对我很有效:
writer.WriteStartElement("my-tag");
writer.WriteRaw(someString);
writer.WriteFullEndElement();
WriteEndElement仍然自行关闭了标签
发布于 2015-01-29 17:59:20
如果您收到消息Extension method can only be declared in non-generic, non-nested static class
,因为单词this
可能会被突出显示,只需创建一个扩展类,如下所示:
public static class Extension
{
public static void WriteFullElementString(this XmlTextWriter writer, string localName, string value)
{
writer.WriteStartElement(localName);
writer.WriteRaw(value);
writer.WriteFullEndElement();
}
}
希望这被证明是有用的:-)
发布于 2016-01-06 19:53:12
试试这个:
x.WriteStartElement("my-tag");
//Value of your tag is null
If (<"my-tag"> == "")
{
x.WriteWhitespace("");
}else
x.WriteString(my-tag);
x.WriteEndElement();
https://stackoverflow.com/questions/9010420
复制相似问题