Avatar billede mercutio Nybegynder
09. august 2005 - 14:55 Der er 14 kommentarer og
1 løsning

Jeg får ingen værdi ud når jeg tester mit xsl dokument.

Min xml starter således
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="C:\Documents and Settings\obi\Desktop\OasisUblOrder1-0.xsl"?>
<Order xmlns="urn:oasis:names:specification:ubl:schema:xsd:Order-1.0" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-1.0" xmlns:cur="urn:oasis:names:specification:ubl:schema:xsd:CurrencyCode-1.0" xmlns:res="urn:oasis:names:specification:ubl:schema:xsd:AcknowledgementResponseCode-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:specification:ubl:schema:xsd:Order-1.0 http://docs.oasis-open.org/ubl/cd-UBL-1.0/xsd/maindoc/UBL-Order-1.0.xsd">
    <BuyersID>200500000109</BuyersID>
    <cbc:IssueDate>2005-08-09</cbc:IssueDate>
    <cbc:Note><![CDATA[en laaaaaaaaaaaaaaaaaang beskrivelse]]></cbc:Note>
    <cbc:LineExtensionTotalAmount amountCurrencyID="DKK">120.00</cbc:LineExtensionTotalAmount>
    <cac:BuyerParty>

Min xsl ser sådan ud. Men når jeg åbner min xml er siden bare blank. Hvorfor?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Order-1.0"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-1.0"
xmlns:cur="urn:oasis:names:specification:ubl:schema:xsd:CurrencyCode-1.0"
xmlns:res="urn:oasis:names:specification:ubl:schema:xsd:AcknowledgementResponseCode-1.0">
<xsl:template match="/">
<html>
    <head>
        <title></title>
    </head>
    <body><xsl:value-of select="/Order/cbc:Note"/></body>
</html>
</xsl:template>
</xsl:stylesheet>
Avatar billede schwarz84 Nybegynder
09. august 2005 - 15:04 #1
Du har sat default namespace til 'xmlns="urn:oasis:names:specification:ubl:schema:xsd:Order-1.0"'. Det er et problem når du bruger html-koder i default namespace uden at definere et særligt namespace til dem.
Derudover skal du nok i 'value-of' matche på 'Order/cbc:Note' og ikke '/Order/cbc:Note' da du har matchet / med din template.
Avatar billede schwarz84 Nybegynder
09. august 2005 - 15:05 #2
xhtml's namespace er 'http://www.w3.org/1999/xhtml' og det ville nok være et fornuftigt valg som default namespace i dit xslt-stylesheet.
Avatar billede mercutio Nybegynder
09. august 2005 - 15:07 #3
Men selv om jeg laver de ændringer du siger får jeg stadig intet ud.
Avatar billede mercutio Nybegynder
09. august 2005 - 15:09 #4
Min xsl ser nu sådan ud.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-1.0"
xmlns:cur="urn:oasis:names:specification:ubl:schema:xsd:CurrencyCode-1.0"
xmlns:res="urn:oasis:names:specification:ubl:schema:xsd:AcknowledgementResponseCode-1.0">
<xsl:template match="/">
<html>
    <head>
        <title></title>
    </head>
    <body><xsl:value-of select="Order/cbc:Note"/></body>
</html>
</xsl:template>
</xsl:stylesheet>
Avatar billede schwarz84 Nybegynder
09. august 2005 - 15:10 #5
Jeg kigger lige på det.
Avatar billede schwarz84 Nybegynder
09. august 2005 - 15:18 #6
Hov, du havde fjernet dit Order-namespace. Problemet var jo netop at de konfliktede. Sådan her:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-1.0"
xmlns:cur="urn:oasis:names:specification:ubl:schema:xsd:CurrencyCode-1.0"
xmlns:res="urn:oasis:names:specification:ubl:schema:xsd:AcknowledgementResponseCode-1.0" xmlns:order="urn:oasis:names:specification:ubl:schema:xsd:Order-1.0">
<xsl:template match="/">
<html>
    <head>
        <title></title>
    </head>
    <body><xsl:value-of select="order:Order/cbc:Note"/></body>
</html>
</xsl:template>
</xsl:stylesheet>

Gør det hvad du forventede?
Avatar billede schwarz84 Nybegynder
09. august 2005 - 15:19 #7
Jeg har kun testet med Firefox, da jeg ikke umiddelbart har adgang til Windows/IE...
Avatar billede mercutio Nybegynder
09. august 2005 - 15:20 #8
ahh ja så virker det =)

Jeg har aldrig helt fattet hvad de namespaces skal bruges til...

Tak for hjælpen får jeg lige et svar?
Avatar billede schwarz84 Nybegynder
09. august 2005 - 15:20 #9
Men det er vel også til noget server side...
Avatar billede mercutio Nybegynder
09. august 2005 - 15:22 #10
Nej det skal bruges i explorer men den har jeg lige selv testet det i.
Avatar billede schwarz84 Nybegynder
09. august 2005 - 15:22 #11
Ja.

Namespaces er netop til at adskilde forskellig slags XML. XHTML er én slags og de tags du ellers bruger er andre slags. Ved at give XHTML ét namespace og andre namespaces til andre XML-sprog kan du holde dem adskilt, også selvom to tags hedder det samme. Det er i hvert fald den praktiske del af det...
Avatar billede mercutio Nybegynder
09. august 2005 - 15:24 #12
Kunne jeg ikke byttet rundt på order namespacet og default namespacet så jeg ikke skal taste order hver gang jeg vil lave en select? Jeg har aldrig været ude for det før...
Avatar billede schwarz84 Nybegynder
09. august 2005 - 15:29 #13
Ja, men så skulle du definere et andet namespace til xhtml. Du kan jo også bare kalde namespacet o i stedet for order, hvis du synes, det er for besværligt at skrive hver gang.
Avatar billede mercutio Nybegynder
09. august 2005 - 15:39 #14
tusind tak for hjælpen =)
Avatar billede mercutio Nybegynder
09. august 2005 - 17:20 #15
Hmm lige et spørgsmål mere. Nu vil jeg så trække buyersId ud

<xsl:value-of select="order:Order/BuyersID"/>

Burde det ikke have virket?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester