Transformer XML og XSLT
Hej Eksperter,Jeg har en funktion som via LINQ laver en xml stream ud fra min SQL database.
public string GetWebsiteStructureAsXML()
{
DataClassesDataContext dc = new DataClassesDataContext();
var websiteStructure = (from p in dc.GetTable<dbPages>()
select p);
System.Xml.Linq.XDocument _xml = new System.Xml.Linq.XDocument();
XElement _xp = new XElement("pages");
foreach (var _p in websiteStructure)
{
_xp.Add(new XElement("page",
new XElement("pageID", _p.PageID),
new XElement("pageName", _p.PageName)));
}
_xml.Add(_xp);
return (_xml.ToString());
}
Det virker fint!!!
Så har jeg en funktion som hedder GetContent() som bliver kaldt fra min default.aspx - Denne skal transformere en XSLT template og min xml stream. Virker ikke så godt :-(
public string GetContent()
{
//load the Xml doc
string sXmlPath = GetWebsiteStructureAsXML();
XPathDocument myXPathDoc = new XPathDocument(sXmlPath);
XslCompiledTransform myXslTrans = new XslCompiledTransform();
//load the Xsl
string sXslPath = "/Templates/MainTemplate.xslt";
myXslTrans.Load(sXslPath);
//create the output stream
StringBuilder sb = new StringBuilder();
XmlWriter myWriter = XmlWriter.Create(sb);
//do the actual transform of Xml
myXslTrans.Transform(myXPathDoc, null, myWriter);
myWriter.Close();
return sb.ToString();
}
Jeg får fejlen:
Illegal characters in path.
Line 29: //load the Xml doc
Line 30: string sXmlPath = GetWebsiteStructureAsXML();
Line 31: XPathDocument myXPathDoc = new XPathDocument(sXmlPath);
Er der en af jer kvikke hoveder som kan se hvad jeg gør galt???
// Bruhn