我使用xmlwriter创建了一个xml文件,我认为它工作正常,但是当我尝试验证它失败时,bcoz有spl字符(BOM)显示如下,刚刚通过论坛看到很多人都鼓励我使用“SecurityElement.Escape”。我不知道如何以及在哪里。有人请指导我从xml文件中移除此spl文字。如何在xml中替换或删除spl字符
<?xml version="1.0" encoding="utf-8"?>
如果发现代码上面的符号
它看起来像<
我的代码
XmlWriter xmlWrite;
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
xmlWrite = XmlWriter.Create(@"c:\test.xml",settings);
xmlWrite.WriteStartElement("metadata");
xmlWrite.WriteElementString("story", story);
xmlWrite.Close();
我可以成功地删除版本,但仍是SPL人物的存在。我现在卡住了。
任何帮助?
这就是答案,帮我摆脱了SPL焦炭
XmlWriter xmlWrite;
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = new UTF8Encoding(false);//Thanks to DaveE
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.OmitXmlDeclaration = true;
xmlWrite = XmlWriter.Create(@"c:\test.xml",settings);
上午的时候我追加使用 “使用(TextWriter的SW =新的StreamWriter(@” C:\的test.xml“))去解决它
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\test.xml");
XmlNode newChild = doc.CreateNode(XmlNodeType.Element, "image", null);
var attribute = doc.CreateAttribute("name");
attribute.Value = nameOnly;
newChild.Attributes.Append(attribute);
XmlNode xmlElement = doc.CreateNode(XmlNodeType.Element, "width", null);
xmlElement.InnerText = widthValue[1].TrimStart();
newChild.AppendChild(xmlElement);
using (TextWriter sw = new StreamWriter(@"C:\test.xml"))
{
doc.Save(sw);
}
,感谢您的评论,我使用“http://www.xmlvalidation.com/index.php?id=1&L=0”来验证我的xml并在版本前发现了spl字符串,所以我尝试省略设置删除版本,但仍然是spl字符现在是我的根节点的前面。 – Usher 2012-03-09 01:27:37
如果文件包含BOM,该工具将验证* plain xmt text *而不是xml *文件内容*。 – DaveE 2012-03-09 01:42:20
你用什么来打开文件?它应该是一个纯文本编辑器,如Notepad或Notepad ++,而不是文字处理器。 – DaveE 2012-03-09 01:44:55