Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med XmlReaderSettings och XslCompiledTransform

Postades av 2006-11-29 16:11:22 - Andreas Lagerkvist, i forum c# (c-sharp), Tråden har 8 Kommentarer och lästs av 868 personer


Förstår inte varför det här inte fungerar.
Jag använder t.ex den här raden:
settings.ValidationType = ValidationType.DTD;
Använder jag denna rad så får jag felet:
The 'id' attribute is not declared.
Både jag och min kollega har kollat och vi kan inte hitta något element där id är required att id saknas.

När jag använder den här raden:
settings.ValidationType = ValidationType.None;
Så går det igenom men resultatet (utdatat) blir tomt. Ingenting kommer ut.

Tacksam för hjälp
MVH Andreas

Kod:

public string ParseMyTcml(string tcml)
{

try
{
StreamWriter sw = new StreamWriter("c:\\text.xml");
sw.Write(tcml);
sw.Close();


XslCompiledTransform xslt = new XslCompiledTransform();
FileStream fsxslt = new FileStream("C:\\VBTcmlWizard\\AndyLab.xsl", FileMode.Open, FileAccess.Read);
StreamReader sreader = new StreamReader(fsxslt);


XmlTextReader xtr = new XmlTextReader(sreader);
xslt.Load(xtr);


XsltArgumentList xslArg = new XsltArgumentList();
long pageid = 1;
xslArg.AddParam("pageid", "", pageid);
MemoryStream ms = new MemoryStream();

string sTcml = tcml;
sTcml = sTcml.Replace("\x15", " ");
sTcml = sTcml.Replace("\x12", " ");
sTcml = sTcml.Replace("\x11", " ");

XmlReaderSettings settings = new XmlReaderSettings();
settings.ProhibitDtd = false;
settings.ValidationType = ValidationType.None;
settings.XmlResolver = new MyOwnXmlResolver();


StringReader stReader = new StringReader(sTcml);
XmlReader stTcmlReader = XmlReader.Create(stReader, settings);


XPathDocument m_TCMLXPathDocument = new XPathDocument(stTcmlReader);
xslt.Transform(m_TCMLXPathDocument, xslArg, ms);

stTcmlReader.Close();
stReader.Close();
xtr.Close();
fsxslt.Close();



StreamReader reader = new StreamReader(ms);
string rstr = reader.ReadToEnd();
reader.Close();
ms.Close();
return rstr;
}
catch (Exception ex)
{
return ex.Message;

}
}

}

public class MyOwnXmlResolver : XmlUrlResolver
{
public override Uri ResolveUri(Uri baseUri, string relativeUri)
{

if (relativeUri == "tcml.dtd")
{
return new Uri(@"c:\dtdfiler\tcml.dtd");
}
else
{
return null;
}
}
}


Svara

Sv: Problem med XmlReaderSettings och XslCompiledTransform

Postades av 2006-11-29 16:54:52 - Simon Dahlbacka

Som den säger, ett id fattas, men eftersom du varken visar dtd, xml eller xslt så är det svårt att hjälpa mera.

Angående tomt utdata så låter det som om du har fel i dina xpath uttryck i xslt:n


Svara

Sv:Problem med XmlReaderSettings och XslCompiledTransform

Postades av 2006-11-29 19:48:44 - Andreas Lagerkvist

Tackar tackar
Jag ska skicka xslt och xml imorgon när jag är på jobbet. :)


Svara

Sv: Problem med XmlReaderSettings och XslCompiledTransform

Postades av 2006-11-29 23:06:08 - Ola Lindfeldt

Ett vanligt fel med både xpath och xslt är att man glömmer ta hänsyn till namespaces. Om processorn inte hittar elementen i ett namespace som den förväntar sig blir det ingen utdata.. Du ska eventuellt lägga till namespaces-hanteringen i din kod..


Svara

Sv:Problem med XmlReaderSettings och XslCompiledTransform

Postades av 2006-12-05 16:57:13 - Andreas Lagerkvist

Det här med namespace hantering fattar jag inte riktigt ännu men jag har gjort lite labbar och bantat ner filerna. Jag hoppas att detta underlättar om någon vill testa. Ganska svår nöt att knäcka :)
Tacksam för hjälp om detta.
MVH Andreas

***test.tcml***
<?xml version="1.0"?>
<!DOCTYPE tcml SYSTEM "tcml.dtd">

<tcml id="tc-0302004-20d8139470a3">
</tcml>

***test.xsl***
<?xml version='1.0'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

</xsl:stylesheet>

***tcml.dtd***
<!-- tcml version 2.00.000 -->
<!-- generic entities -->
<!ENTITY % TEXT "CDATA" >
<!ENTITY % VALUE "CDATA" > <!-- format: # '.' # ( ',' # '.' # )* ( ',' mm | in | fu | pt | deg | rad )? -->
<!ENTITY % TIME "CDATA" > <!-- format: "yyyy-mm-dd hh:mm:ss.00" -->
<!ENTITY % URL "CDATA" > <!-- format: RFC1738, RFC1808 -->
<!ENTITY % TEXTCONTENT "#PCDATA | softbreak | hardbreak | paragraph | font | color | baseline" >
<!-- tcml -->
<!ELEMENT tcml ( #PCDATA | form )* >
<!ATTLIST tcml
andla %TEXT; #REQUIRED
version %TEXT; #IMPLIED
generator %TEXT; #IMPLIED
created %TIME; #IMPLIED
compressed %TEXT; "no"
>


***källkod***

try
{
//StreamWriter sw = new StreamWriter("c:\\text.xml");
//sw.Write(tcml);
//sw.Close();

StreamReader sr = new StreamReader("c:\\test.tcml");
string tcml = sr.ReadToEnd();
sr.Close();

XslCompiledTransform xslt = new XslCompiledTransform();
//FileStream fsxslt = new FileStream("C:\\VBTcmlWizard\\AndyLab.xsl", FileMode.Open, FileAccess.Read);
FileStream fsxslt = new FileStream("C:\\test.xsl", FileMode.Open, FileAccess.Read);

StreamReader sreader = new StreamReader(fsxslt);


XmlTextReader xtr = new XmlTextReader(sreader);
xslt.Load(xtr);


XsltArgumentList xslArg = new XsltArgumentList();
long pageid = 1;
xslArg.AddParam("pageid", "", pageid);
MemoryStream ms = new MemoryStream();

string sTcml = tcml;
//sTcml = sTcml.Replace("\x15", " ");
//sTcml = sTcml.Replace("\x12", " ");
//sTcml = sTcml.Replace("\x11", " ");

XmlReaderSettings settings = new XmlReaderSettings();
settings.ProhibitDtd = false;
settings.ValidationType = ValidationType.DTD;
settings.XmlResolver = new MyOwnXmlResolver();


StringReader stReader = new StringReader(sTcml);
XmlReader stTcmlReader = XmlReader.Create(stReader, settings);


XPathDocument m_TCMLXPathDocument = new XPathDocument(stTcmlReader);
xslt.Transform(m_TCMLXPathDocument, xslArg, ms);

stTcmlReader.Close();
stReader.Close();
xtr.Close();
fsxslt.Close();



StreamReader reader = new StreamReader(ms);
string rstr = reader.ReadToEnd();
reader.Close();
ms.Close();
return rstr;
}
catch (Exception ex)
{
return ex.Message;

}
-------------------------------------------------

public class MyOwnXmlResolver : XmlUrlResolver
{
public override Uri ResolveUri(Uri baseUri, string relativeUri)
{

if (relativeUri == "tcml.dtd")
{
return new Uri(@"c:\dtdfiler\tcml.dtd");
}
else
{
return null;
}
}
}


Svara

Sv: Problem med XmlReaderSettings och XslCompiledTransform

Postades av 2006-12-05 17:10:11 - Simon Dahlbacka

eftersom du använder dtd och inte schema så är det inte namespacen det är fel på..

däremot har du ju ett xsl som inte gör nåt !?!


Svara

Sv:Problem med XmlReaderSettings och XslCompiledTransform

Postades av 2006-12-05 18:37:26 - Andreas Lagerkvist

Jag tog en stund på mig att ta bort kod för att försöka utesluta att det är den som strular. Körde också genom xselerator (xsl debugger) och den gav inga varning- eller errormeddelanden. Jag är ganska 100 på att om den gör något så kvarstår problemet.
Simon får du samma fel som mig?


Svara

Sv: Problem med XmlReaderSettings och XslCompiledTransform

Postades av 2006-12-05 20:21:10 - Simon Dahlbacka

Det är egentligen rätt klart fall..

- i din tcml (eller vad den nu heter har du ett id attribut som du inte definierat i dtd:n
- du har inte angett attributet "andla" som krävs av dtd:n

när du fixat dom båda grejerna, så funkar det


Svara

Sv:Problem med XmlReaderSettings och XslCompiledTransform

Postades av 2006-12-12 15:36:03 - Andreas Lagerkvist


Japp du har rätt. Har hamnat rätt nu.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 811
27 960
271 761
545
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies