Hi,
> Here is a sample of some XML I need to deal with:
>
> <Root>
> <Database DatabaseName="2004DATA" />
> <Response>
> <Record number="1">
> <Field FieldName="DOCID">SAP1234</Field>
> <Field FieldName="COUNTRY">USA</Field>
> <Field FieldName="CITY">Baltimore</Field>
> <Field FieldName="TEXT">Baltimore is a
> <b>big</b> city...</Field>
> </Record>
> <Record number="2">
> <Field FieldName="DOCID">XYZ4433</Field>
> <Field FieldName="COUNTRY">Canada</Field>
> <Field FieldName="CITY">Toronto, Montreal</Field>
> <Field FieldName="TEXT">Toronto and Montreal are in
> Canada</Field>
> </Record>
> <Record number="3">
> <Field FieldName="DOCID">ABC123</Field>
> <Field FieldName="COUNTRY">Sweden</Field>
> <Field FieldName="CITY">Stockholm</Field>
> <Field FieldName="TEXT">Stockholm is a
> <b>big</b> city also...</Field>
> </Record>
> <Response>
> </Root>
>
> 1- My first issue concerns the Database tag. As you can
> see, I receive an XML response with 1 response and
> multiple Records nested within it. I need to
> extract each "Record" and transform it to be different
> XML (no attribute names for one thing...), and I need
> to add the value in the Database tag (2004DATA) to each
> "Record" before inserting the doc as a CLOB into a
> database. The problem is, my limited xsl skills have
> allowed me to extract the data I need, but I can't
> figure out how to get the database name value into each
> record. I tried assigning the value to a variable with
If the current node is Record, then e.g. "../../Database/@DatabaseName" will
give you the database name.
> xsl:variable, but the transformation fails. Any help
> appreciated...
>
> 2- How would I create multiple CITY tags in the output
With XSLT you don't create "tags in the output", you create a node tree and
then you can serialize that to XML tags.
> when faced with a response like that in record # 2,
> where the value is Toronto, Montreal? I don't want a
> comma separated value in the body of the tag.
Write a recursive template that tokenizes the stream using COMMA as a
delimiter. See the FAQ, e.g.
<http://www.dpawson.co.uk/xsl/sect2/N7240.html#d9086e280>
> 3- You may have noticed the escaped angle brackets for
> the HTML tags in the TEXT tag value. How do I have them
> display properly? I played with the output="html" and
> the escape attribute to no avail.
See the FAQ again, <http://www.dpawson.co.uk/xsl/sect2/N2215.html>.
Cheers,
Jarno - Hocico: Bloodshed
|