HallgrenMedlem sedan dec. 19991 606 inlägg Yo!
Sitter och pillar lite med XML och CSS. Började lära mig för typ någon dag sedan och har nu stött på ett prob. Vissa som försöker kolla på mitt dokumentet får:
The XML page cannot be displayed Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
XML document must have a top level element.
Anävnder följande kod...
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="varor.css"?>
<varor>
<mobiltelefoner>
<tillverkar namn="ericsson">Ericsson</tillverkar>
<modell>Ericsson T39</modell>
<artikel nr="1000">1000</artikel>
<info>
T39m är utrustad med GPRS (General Packet Radio Services) för omedelbar
Internetåtkomst och trådlös Bluetooth-teknik för sladdlös komfort.
Till det kan du lägga en imponerande lista av användbara funktioner.
Du får en effektiv och säker Internetåtkomst med T39:ans WAP-bläddrare
1.2.1, eller med en laptop, eller handdator med hjälp av det inbyggda
modemet i T39m. PIM-applikationerna (Personal Information Management)
inkluderar en avancerad kalender och telefonbok.
<pris>Pris: 5000</pris>
</info>
<tillverkar namn="siemens">Siemens</tillverkar>
<modell>Siemens SL45</modell>
<artikel nr="1001">1001</artikel>
<info>
SL 45 är en av de första telefonerna med MP-3 spelare. Vad som
skiljer ut den här produkten är att den har utbytbart MultiMediaCard
TM (MMC) som musiken lagras på. Genom att lansera en high-end produkt
med elegans och högteknologiska funktioner blir Siemens GSM-portfölj
komplett. SL 45 är inte bara en telefon. Med sin MP-3 spelare, utbyt
bara MultiMediaCard TM (MMC), röstinspelning, mobil internet anslutning,
adressbok/planeringskalender är den mycket, mycket mer. Med sin eleganta
design är den en av de mest attraktiva produkterna på marknaden.
<pris>Pris: 7000</pris>
</info>
</mobiltelefoner>
</varor>
------------------
Är det en fysisk liknelser eller är du bara ett stort bakverk?
webcam?
SPiNMedlem sedan mars 20007 896 inlägg Verkar mysko. Vilken webläsare kör dessa personer?
Det smidigaste är att formatera XMLen på servern, eftersom att många webläsare fortfarande inte stödjer XML.
------------------
SPiN, bjorne.w@telia.com
-- Wise men talk because they have something to say; fools, because they have to say something. --
HallgrenMedlem sedan dec. 19991 606 inlägg De använder IE 5.5+.
Det smidigaste är att formatera XMLen på servern, eftersom att många webläsare fortfarande inte stödjer XML
Uh?
------------------
Är det en fysisk liknelser eller är du bara ett stort bakverk?
webcam?
SPiNMedlem sedan mars 20007 896 inlägg Ja, du omvandlar din XML till HTML! :)
Jag är tveksam att man kan göra det med CSS, utan man kanske måste använda XSL... Men du kan ju prova. :)
Du använder ASP eller?
<%
objXML = Server.CreateObject ( "Microsoft.XMLDOM" )
objCSS = Server.CreateObject ( "Microsoft.XMLDOM" )
objXML.Load ( "xmlen.xml" )
objXML.async = False
objCSS.Load ( "cssen.css" )
objCSS.async = False
Response.Write objXML.transformNode ( objCSS )
%>
Men som sagt, det verkar skumt att dom får dessa meddelanden om inte du får det.
------------------
SPiN, bjorne.w@telia.com
-- Wise men talk because they have something to say; fools, because they have to say something. --
HallgrenMedlem sedan dec. 19991 606 inlägg XSL e något jag kommer att komma in på lite längre och då kommer jag allt jaga fatt på dig, ;) dock så måste jag få detta att funka.
Kan något testa att använda min koda, göra en enkel css och se om det funka?
------------------
Är det en fysisk liknelser eller är du bara ett stort bakverk?
webcam?
SPiNMedlem sedan mars 20007 896 inlägg Jag hinner tyvärr inte att testa just nu, men kan göra det senare när jag kommer hem.
Testade du min kod annars? Det är möjligt att det funkar, nämligen. :)
------------------
SPiN, bjorne.w@telia.com
-- Wise men talk because they have something to say; fools, because they have to say something. --
jarvkloMedlem sedan juli 20013 378 inlägg
Jag är tveksam att man kan göra det med CSS, utan man kanske måste använda XSL...
Jodå, det går utmärkt...
Jag knappade ihop följande CSS-fil åt dig:
varor {display:block;}
mobiltelefoner {display:block; border 1px solid black}
tillverkar {display:block;border:5px inset black;margin-top:10px}
modell {color:navy;}
modell:before {content:"Modell: "}
modell:after {content:" - ett bra val."}
artikel {color:black;}
artikel:before {content:" Artikelnummer: "}
artikel:after {content:"."}
info {display:block; color:maroon}
pris {color:teal; border: 1px solid maroon}
Koden är giltig CSS2, och ditt exempel finns upplagt för test på http://jarvklo.net/xmlexempel/varor.xml
Jämför skillnaderna mellan Netscape 6.2 och Opera 6 (som gör "rätt") och MSIE 5.5 (som inte hanterar border-stilen inset och inte klarar av :before och :after) så ser du vad jag menar med att MSIE har ofullständigt CSS-stöd
En annan sak man får tänka på, är att man verkligen lagrar XML-filen i den encoding man anger i XML-taggen om man har svenska tecken (åäö - typ) i sitt innehåll - Annars kan man få det felmeddelande du anger för att webbläsaren tolkar åäö "snett"...
och en tredje sak ;) som *eventuellt* kan spela in är att
XML document must have a top level element.
tyder på att den som får felet jar en version av webbläsare som har validering av XML påslagen (om det nu är möjligt ;) ) och därför förväntar sig en <!DOCTYPE i XML-dokumentet - <!DOCTYPE anger ju vilket XML-element i dokumentet som är rot-element ;)
------------------
Have fun
;)
[Redigerat av jarvklo den 26 jan 2002]
HallgrenMedlem sedan dec. 19991 606 inlägg Så problemet kan vara att jag inte har doctype i mitt xml dokument?
Hur skulle det se ut om jag placerar ut ett sånt? Förmodar att det inte räcker med <!DOCTYPE bara. :)
------------------
Är det en fysisk liknelser eller är du bara ett stort bakverk?
webcam?
SPiNMedlem sedan mars 20007 896 inlägg Hm, det bästa är väl om du skriver en full DTD för ditt XML-dokument, är inte säker på om följande fungerar:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="varor.css"?>
<!DOCTYPE varor [
<!ELEMENT varor>
]>
<varor>
...
------------------
SPiN, bjorne.w@telia.com
-- Wise men talk because they have something to say; fools, because they have to say something. --
HallgrenMedlem sedan dec. 19991 606 inlägg Icke, jag får..Required white space was missing..
------------------
Är det en fysisk liknelser eller är du bara ett stort bakverk?
webcam?
SPiNMedlem sedan mars 20007 896 inlägg Jäpp, det var det jag var rädd för... Du måste nog skriva en fullständig DTD om du ska ha med någon över huvud taget.
Om du inte har kunskaperna, så kanske det står något på http://www.xml101.com eller http://www.xmlakademin.se ( Eller var det .nu? ). Orkar tyvärr inte skriva ihop hela åt dig just nu. :l
------------------
SPiN, bjorne.w@telia.com
-- Wise men talk because they have something to say; fools, because they have to say something. --
HallgrenMedlem sedan dec. 19991 606 inlägg Yo!
Tog och kollade lite på DTD och efter lite småpill och ändringar fick jag fram följande kod..
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="varor.css"?>
<!DOCTYPE varor [
<!ELEMENT varor (mobiltelefoner, tillverkare, modell, artikel, info, pris)>
<!ELEMENT mobiltelefoner (#PCDATA)>
<!ELEMENT tillverkare (#PCDATA)>
<!ELEMENT modell (#PCDATA)>
<!ELEMENT artikel (#PCDATA)>
<!ELEMENT info (#PCDATA)>
<!ELEMENT pris (#PCDATA)>
]>
<varor>
<mobiltelefoner>
<tillverkare>Ericsson</tillverkare>
<modell>Ericsson T39</modell>
<artikel nr="1000">1000</artikel>
<info>
T39m är utrustad med GPRS (General Packet Radio Services) för omedelbar
Internetåtkomst och trådlös Bluetooth-teknik för sladdlös komfort.
Till det kan du lägga en imponerande lista av användbara funktioner.
Du får en effektiv och säker Internetåtkomst med T39:ans WAP-bläddrare
1.2.1, eller med en laptop, eller handdator med hjälp av det inbyggda
modemet i T39m. PIM-applikationerna (Personal Information Management)
inkluderar en avancerad kalender och telefonbok.
<pris>Pris: 5000</pris>
</info>
<tillverkare>Siemens</tillverkare>
<modell>Siemens SL45</modell>
<artikel nr="1001">1001</artikel>
<info>
SL 45 är en av de första telefonerna med MP-3 spelare. Vad som
skiljer ut den här produkten är att den har utbytbart MultiMediaCard
TM (MMC) som musiken lagras på. Genom att lansera en high-end produkt
med elegans och högteknologiska funktioner blir Siemens GSM-portfölj
komplett. SL 45 är inte bara en telefon. Med sin MP-3 spelare, utbyt
bara MultiMediaCard TM (MMC), röstinspelning, mobil internet anslutning,
adressbok/planeringskalender är den mycket, mycket mer. Med sin eleganta
design är den en av de mest attraktiva produkterna på marknaden.
<pris>Pris: 7000</pris>
</info>
</mobiltelefoner>
</varor>
...dock får jag Only text allowed inside element "mobiltelefoner" :(
------------------
Är det en fysisk liknelser eller är du bara ett stort bakverk?
webcam?
SPiNMedlem sedan mars 20007 896 inlägg Jäpp. Det beror på att du sätter att innehållet ska vara PCDATA, vilket innebär text. Prova med att sätta ANY istället. Tror att det bör hjälpa... Ska snoka runt lite, och se om det inte var så. :)
Red.} Ja, ANY skulle det vara. Då borde det se ut så här:
<!ELEMENT mobiltelefoner ANY>
------------------
SPiN, bjorne.w@telia.com
-- Wise men talk because they have something to say; fools, because they have to say something. --
[Redigerat av SPiN den 26 jan 2002]
HallgrenMedlem sedan dec. 19991 606 inlägg Ahh, tror allt jag missuppfattade texten om PCDATA.
Har bytt på "mobiltelefoner" och får nu.. this file is not well-formed: % expected
Liten undrarn. Räcker det med att jag kör ANY på mobiltelefoner då de andra elementen e underelement? OM, borde jag inte då köra ANY på varor då det e topelementet?
Måste säga att det e mycket pill med det här. Tog en snabb titt på XHTML förut och det verkar vara ännu värre.
------------------
Är det en fysisk liknelser eller är du bara ett stort bakverk?
webcam?
SPiNMedlem sedan mars 20007 896 inlägg Hmm. *klia i huvudet*
Jag har inte pysslat så mycket med DTDer... Vad jag har förstått så ska ett element deklareras med ANY om det innehåller både text och andra element, eller länkar. Annars #PCDATA.
Visst är det mycket pillegöra om man sitter med scheman och DTDer, men det är inte alltid såna används... Även om det är att föredra. :)
Tyvärr kan jag nog inte hjälpa dig mer med DTDer, men jag ska försöka hitta information på nätet som är nyttig...
------------------
SPiN, bjorne.w@telia.com
-- Wise men talk because they have something to say; fools, because they have to say something. --
HallgrenMedlem sedan dec. 19991 606 inlägg Tar emot all info du kan hitta med öppna armar. :)
Ni som tittar in på den här tråden och kör IE. Kan ni kolla om denna sida funkar?
------------------
Är det en fysisk liknelser eller är du bara ett stort bakverk?
webcam?
SPiNMedlem sedan mars 20007 896 inlägg Jag kör inte IE, men den funkade finfint för mig på Linux med webläsaren Konqueror. :)
*forsätter leta* :)
------------------
SPiN, bjorne.w@telia.com
-- Wise men talk because they have something to say; fools, because they have to say something. --
HallgrenMedlem sedan dec. 19991 606 inlägg SPiN >>
Weeee! :) Skulle du kunna dra en skärmdump det hela?
------------------
Är det en fysisk liknelser eller är du bara ett stort bakverk?
webcam?
SPiNMedlem sedan mars 20007 896 inlägg Sure! Här har du:
http://www.command.nu/Screenshot.jpg
Dock funkade det inte i Netscape för Linux...
------------------
SPiN, bjorne.w@telia.com
-- Wise men talk because they have something to say; fools, because they have to say something. --
@ndersMedlem sedan juni 200032 969 inlägg Hallgren, funkar klockers här också.
Mvh,