Du gör en xml resolver (ärver XmlResolver) och använder cirka ungefär som följande.. Det gör du inte direkt, men du gör som jag sa, ärver XmlResolver och implementerar specifikt GetEntity på vettigt sätt: Tackar tackar. Äntligen fattar jag :) markera då gärna tråden som löstXmlTextReader och XPathDocument hur stoppar man in sin dtd fil?
Hej!,
får det här felet.
Could not find file 'C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\tcml.dtd'
Jag skulle kunna avhjälpa problemet genom att bara lägga in dtd filen där, men jag skulle vilja veta hur man gör för att få den t.ex på c:\dtd\tcml.dtd
Så här ser koden ut nu när jag kör:
MemoryStream ms = new MemoryStream();
System.Xml.XmlTextReader stTcmlReader = new System.Xml.XmlTextReader((new System.IO.StringReader(sTcml)));
XPathDocument m_TCMLXPathDocument = new XPathDocument(stTcmlReader);
xslt.Transform(m_TCMLXPathDocument, xslArg, ms);
ms.Close();
stTcmlReader.Close();
Tacksam för hjälp.
MVH AndreasSv: XmlTextReader och XPathDocument hur stoppar man in sin dtd fil?
XmlReaderSettings settings = new XmlReaderSettings();
settings.ProhibitDtd = false;
settings.ValidationType = ValidationType.DTD;
settings.XmlResolver = new DinEgnaXmlResolver();
XmlReader reader = XmlReader.Create(filename, settings);
...
Sv:XmlTextReader och XPathDocument hur stoppar man in sin dtd fil?
Enligt exempel jag sett så stoppa jag väl in xml filen i filename argumentet på XmlReader.Create(filename,settings);
Men var talar jag om att jag vill använda en specifik .dtd fil?Sv: XmlTextReader och XPathDocument hur stoppar man in sin dtd fil?
public override Uri ResolveUri (Uri baseUri, string relativeUri) {
if (relativeUri == "dtdnDuÄrIntresseradAv.dtd") {
return new Uri(@"c:\sökväg\till\dtdfilen.dtd");
} else {
return null;
}
}
Sv:XmlTextReader och XPathDocument hur stoppar man in sin dtd fil?
Sv: XmlTextReader och XPathDocument hur stoppar man in sin dtd fil?