Nils W.: XML + DOCTYPE mit XSL verarbeiten...

Beitrag lesen

Hallo Thomas,

das mit dem Hochladen ist leider so eine Sache, da muß ich erst mal schauen, welche Daten so ins Internet dürfen. Auch wenn es ein offener Katalog ist, könnten da Daten drin enthalten sein, die so nicht raus sollten.

Wie auch immer, im ersten Beitrag ist der unterste Abschnitt ein "leaf"-Objekt, und die Abfrage funktioniert auch, wenn ich die Zeile mit DOCTYPE auskommentiere. Und genau da liegt mein Problem, ich verstehe das nicht. DOCTYPE inaktiv - die Abfrage funktioniert, DOCTYPE aktiv, die Abfrage funktioniert nicht. Ich habe jetzt auch noch eine Test-DTD erstellt, die auf das notwendige Minimum reduziert ist, aber daran liegt es auch nicht.

Gruß, Nils.

Hallo,

jetzt habe ich mal die Java-Verison von Xalan (2.7.1) verwendet. Der Aufruf:
java -jar d:\xalan-j_2_7_1-bin\xalan.jar -TT -TG -TS -TTC -IN BMECatneu.xml -XSL BMECat.xsl

file:///BMECat.xsl Line #10, Column #128: for-each, select='BMECAT/T_NEW_CATALOG/CLASSIFICATION_SYSTEM/CLASSIFICATION_GROUPS/CLASSIFICATION_GROUP[@type = 'leaf']':
     [empty node list]
STARTDOCUMENT
ENDDOCUMENT

Jetzt habe ich das XML aus dem ersten Posting genauer angesehen:

<xsl:for-each select="BMECAT/T_NEW_CATALOG/CLASSIFICATION_SYSTEM/CLASSIFICATION_GROUPS/CLASSIFICATION_GROUP[@type = 'leaf']">

Wenn ich das richtig sehe, muss das zwangsläufig zum [empty node list] führen, denn dein XML sieht so aus:

<BMECAT version="2005">
<T_NEW_CATALOG>
  <CLASSIFICATION_SYSTEM>
   <CLASSIFICATION_SYSTEM_NAME>udf_PRODUCTCATALOG1.0</CLASSIFICATION_SYSTEM_NAME>
   <CLASSIFICATION_GROUPS>
    <CLASSIFICATION_GROUP type="node">
     <CLASSIFICATION_GROUP type="node">


>   
> erst in der zweiten CLASSIFICATION\_GROUP ebene würde ein type="leaf" geben.  
>   
> Ich kann jedenfalls anhand des XMLs und XSLs nicht anderes sagen. (Und auch wenn ich anhand des XMLs eine DTD generierte und die Transformation ausführte, komme ich zu keinem anderen Ergebnis)  
> Vielleicht kannst du die Dateien irgendwo hochladen?  
>   
> Grüße  
> Thomas