xsl-list
[Top] [All Lists]

RE: More newbie questions

2005-03-22 00:18:17
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
&lt;b&gt;big&lt;/b&gt; 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
&lt;b&gt;big&lt;/b&gt; 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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>