我使用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