我正在尝试将我的数据库提要数据解析为XML,但是在客户端我不断收到此错误:
XML Parsing Error: not well-formed
Location: http://localhost:12736/Test.aspx
Line Number 7, Column 26:
<Publication Date>29/04/2015 09:40:53</Publication Date>
------------------^
我尝试过转换datetime参数&#39; ActivateDate&#39;成为字符串,但我在发布日期&#39;上仍然收到同样的错误。节点。我也试过在线寻找解决方案,但我仍然无法解决这个问题。
以下是我的服务器代码供进一步参考:
Response.Clear();
Response.ContentType = "text/xml";
using (XmlTextWriter xml = new XmlTextWriter(Response.OutputStream, Encoding.UTF8))
{
xml.Formatting = Formatting.Indented;
xml.Indentation = 4;
xml.WriteStartDocument();
xml.WriteStartElement("items");
foreach (DataRow oFeedItem in dt.Rows)
{
// DateTime dtt = DateTime.Parse(oFeedItem["ACTIVEDATE"].ToString());
string dat = Convert.ToString(oFeedItem["ACTIVEDATE"].ToString());
// dat.ToString("dd MMMM yyyy");
xml.WriteStartElement("Article");
xml.WriteElementString("title", oFeedItem["title"].ToString());
xml.WriteStartElement("description");
xml.WriteCData(oFeedItem["Body"].ToString());
xml.WriteEndElement();
xml.WriteElementString("categories", oFeedItem["categories"].ToString());
xml.WriteElementString("Publication Date", dat);
xml.WriteEndElement();
}
xml.WriteEndElement();
xml.WriteEndDocument();
xml.Flush();
xml.Close();
Response.End();
}
感谢您的建议和反馈。
答案 0 :(得分:2)
XML元素名称不能包含空格。
W3C specification将xml标记声明为:
'<' Name (S Attribute)* S? '>'
其中S
是一个或多个空格字符(#x20 |#x9 | #xD | #xA)。
所以从这个规范可以清楚地看到空格(#x20)被认为是元素名称和属性列表之间的分隔符 - 所以名称本身不能包含空格。
将元素Publication Date
更改为Publication_Date
将有助于使您的xml格式正确。
xml.WriteElementString("Publication_Date", dat);