在ASP.NET 2.0網站中,我有一個表示一些格式良好的XML的字符串。我目前正在創建一個XmlDocument對象,並運行一個XSL轉換以在Web窗體中顯示。在XML輸入開始包含名稱空間之前,一切正常。閱讀XML名稱空間中的字符串以用於XSL轉換
如何讀取此字符串並允許命名空間?
我已經包含了下面的當前代碼。字符串來源來自WordPress RSS提要中的HTML編碼節點。
XPathNavigator myNav= myPost.CreateNavigator();
XmlNamespaceManager myManager = new XmlNamespaceManager(myNav.NameTable);
myManager.AddNamespace("content", "http://purl.org/rss/1.0/modules/content/");
string myPost = HttpUtility.HtmlDecode("<post>" +
myNav.SelectSingleNode("//item[1]/content:encoded", myManager).InnerXml +
"</post>");
XmlDocument myDocument = new XmlDocument();
myDocument.LoadXml(myPost.ToString());
的錯誤是在最後一行:
「System.Xml.XmlException: 'W' 是一個未聲明命名空間線12,位置201在System.Xml.XmlTextReaderImpl.Throw(例外e)...「
你是直覺的目標。看起來帖子是從MS Word複製並粘貼的,所以HTML包含具有「w」名稱空間的屬性,但是沒有嵌入式聲明。 – Mattio 2008-09-23 14:45:37