Ik heb een stuk XML (export uit programma die ik niet kan wijzigen) die ik in een database wil stoppen (of html rapport van maken).
Nu ben ik er na flink zoekwerk achtergekomen dat ik daarvoor het beste met XSL een textbestand of html-pagina kan maken.
Nu ben ik een beetje aan het testen en ik kom er niet uit. In de XML staat een stuk tekst met CDATA eromheen:
Ik gebruik deze XLS:
Nu wil ik alles binnen in de CDATA in 1 kolom stoppen. Ik krijg het niet voor elkaar om ALLEEN het CDATA deel uit de tak <expression> te halen. Als ik het doe zoals de xsl er nu uit ziet, krijg ik ook de andere waarden erbij.
Het zou er zo uit moeten komen:
Wat doe ik verkeerd en kan dit eigenlijk wel zo?
Nu ben ik er na flink zoekwerk achtergekomen dat ik daarvoor het beste met XSL een textbestand of html-pagina kan maken.
Nu ben ik een beetje aan het testen en ik kom er niet uit. In de XML staat een stuk tekst met CDATA eromheen:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <?xml version="1.0" encoding="ISO8859-1" ?> <?xml-stylesheet type="text/xsl" href="temp1.xsl"?> <REPORT> <column> <qColId>A7C200</qColId> <name>Product No.</name> <controlType>0</controlType> <isAggregate>0</isAggregate> <assocType>0</assocType> <breakLevel>0</breakLevel> <sort> <type>none</type> <level>0</level> </sort> <xtabName /> <xtabBreakLevel>0</xtabBreakLevel> <expression> <name>Product No.</name> <type>column</type> <dataType>numeric</dataType> <![CDATA[ ColumnRef["OUTDOORS"."PRODUCT"."PROD_NO"] ]]> </expression> </column> ETC... </REPORT> |
Ik gebruik deze XLS:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Naam</th>
<th>Type</th>
<th>DateType</th>
<th>Query</th>
</tr>
<xsl:for-each select="REPORT/column">
<tr>
<td><xsl:value-of select="expression/name"/></td>
<td><xsl:value-of select="expression/type"/></td>
<td><xsl:value-of select="expression/dataType"/></td>
<td><xsl:value-of select="expression"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet> |
Nu wil ik alles binnen in de CDATA in 1 kolom stoppen. Ik krijg het niet voor elkaar om ALLEEN het CDATA deel uit de tak <expression> te halen. Als ik het doe zoals de xsl er nu uit ziet, krijg ik ook de andere waarden erbij.
Het zou er zo uit moeten komen:
| Naam | Type | DateType | Query |
| Product No. | column | numeric | ColumnRef["OUTDOORS"."PRODUCT"."PROD_NO"] |
Wat doe ik verkeerd en kan dit eigenlijk wel zo?