XML分析错误:格式不正确
当我试图在sharepoint中打开页面时,会出现上述错误。实际上,我使用了以下代码:XML分析错误:格式不正确,xml,sharepoint-2007,Xml,Sharepoint 2007,当我试图在sharepoint中打开页面时,会出现上述错误。实际上,我使用了以下代码: protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/xml"; Response.Write(GenerateTagCloud()); Response.End(); } private string GenerateTagCloud() { SP
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "text/xml";
Response.Write(GenerateTagCloud());
Response.End();
}
private string GenerateTagCloud()
{
SPWeb myweb = null;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPSite mysite1 = new SPSite(mysite.ID);
myweb = mysite1.OpenWeb();
});
myweb.AllowUnsafeUpdates = true;
SPList categories = myweb.Lists["Discussion Categories"];
SPList discussion = myweb.Lists["Team Discussion"];
System.Text.StringBuilder sp = new System.Text.StringBuilder();
//System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
sp.Append("<?xml version='1.0' encoding='UTF-8'?>");
sp.Append("<tags>");
foreach (SPListItem category in categories.Items)
{
string categoryname = category.Name;
categoryname = categoryname.Replace(" ", "%20");
sp.Append("<a href='" + myweb.Url + "/Pages/Home.aspx?Discussion=" + categoryname + "' style='font-size: 13.5pt' color='0x7b7b7b'>" + category.Name + "</a>");
}
sp.Append("</tags>");
myweb.AllowUnsafeUpdates = false;
return sp.ToString();
}
受保护的无效页面加载(对象发送方,事件参数e)
{
Response.ContentType=“text/xml”;
Write(GenerateTagCloud());
Response.End();
}
私有字符串GenerateTagCloud()
{
SPWeb myweb=null;
SPSecurity.runWithLevelatedPrivileges(委托()
{
SPSite mysite1=新的SPSite(mysite.ID);
myweb=mysite1.OpenWeb();
});
myweb.AllowUnsafeUpdates=true;
SPList categories=myweb.Lists[“讨论类别”];
SPList discussion=myweb.list[“团队讨论”];
System.Text.StringBuilder sp=新的System.Text.StringBuilder();
//System.Xml.XmlDocument doc=new System.Xml.XmlDocument();
sp.Append(“”);
sp.Append(“”);
foreach(categories.Items中的SPListItem类别)
{
string categoryname=category.Name;
categoryname=categoryname.Replace(“,“%20”);
sp.Append(“”);
}
sp.Append(“”);
myweb.AllowUnsafeUpdates=false;
返回sp.ToString();
}
但在输出中,它显示为:标记<和>中标记节点的打开和关闭。如何更正此问题?由于问题在于其中一个类别名称中的
&
,因此您只需对其进行转义即可-XML中有五个字符需要转义:
- &-
&代码>
- <-
-
- “-
”
- '-
&apos代码>
&
,只需将其替换为&代码>
话虽如此,如果您正在编写XML,您应该使用XmlWriter
,而不是StringBuilder
——这将正确转义字符,并且不会发生此类错误:
XmlWriter writer = XmlWriter.Create(Console.Out);
writer.WriteStartElement("Foo");
writer.WriteAttributeString("Bar", "Some & value");
writer.WriteElementString("Nested", "data & data");
writer.WriteEndElement();
代码取自。sp.Append(“);在上面的代码中。它没有在上面的代码中显示您的类别名称是什么?它们是有效的XML吗?sp
是什么?它是如何声明的?类别名称是有效的。sp是一个stringbuilder对象。在页面加载中,我编写了response.write(sp);response.end();在开始之前,我是否要添加到stringbuilder对象,以便它可以工作?您如何输出此内容?您可以发布代码吗?