我正在尝试使用XMLWriter将一个字符串(只是XMLNodes)写入一个新的XML文件中。很少有字符串是有效的XML内容,而很少有字符串不是。
字符串输入: 1。
<Test>
<A a="Hello"></A>
<B b="Hello"></B>
</Test>
代码:
using (XmlWriter writer = XmlWriter.Create(@"C:\\Test.XML"))
{
writer.WriteStartDocument();
string scontent2 = "Hello This is Sample String but not XML";
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
try{
using (StringReader stringReader = new StringReader(scontent))
using (XmlReader xmlReader = XmlReader.Create(stringReader, settings))
{
writer.WriteStartElement("Test");
writer.WriteNode(xmlReader, true);
writer.WriteEndElement();
}catch(XMLException exception){}
}
预期输出:
如果发生异常,也不能创建测试元素。如果我使用scontent.Read()
或任何此类问题,问题是因为指针移动到节点,writer.WriteNode(scontent,true)
不会写整个节点(如果有两个以上的节点),例如。 <A a="Hello"></A><B b="Hello"></B>
。在这种情况下,我使用WriteNode编写所有节点,XMLReader必须处于初始状态(XmlReader.State
)。