Formatting in XML?

Ken Ray kray at sonsothunder.com
Sat Feb 5 12:42:34 EST 2005


On 2/5/05 9:23 AM, "Terry Vogelaar   (de Mare)" <tvogelaar at de-mare.nl>
wrote:

> Op 5-feb-05 om 7:38 heeft Ken Ray het volgende geschreven:
> 
>> On 2/5/05 12:19 AM, "Terry Vogelaar   (de Mare)" <tvogelaar at de-mare.nl>
>> wrote:
>> 
>>> <Card>
>>>      <Header>This fantastic card</Header>
>>>      <Content>
>>>          <Red>This</Red> needs to be displayed
>>> <italic>formatted</italic>
>>>          just like <bold>HTML</bold>; it should be in
>>> <italic>one</italic> field.
>>>      </Content>
>>> </Card>
>>> 
>>> If I try revXMLNodeContents(id,"/Card/Content"), the function returns
>>> empty. No "xmlerr", not even " needs to be displayed just like ; it
>>> should be in field." Not that I want any of those...
>>> 
>>> How do I get what I want?
>> 
>> Terry, the problem is that you have tags within tags... the <Red> tag
>> is a
>> node just like <Content>. What you need is a CDATA tag that will let
>> you
>> store formatted data inside of a node, like:
>> 
>> <Content>
>>   <![CDATA[<Red>This</Red> needs to be displayed
>> <italic>formatted</italic>
>> just like <bold>HTML</bold>; it should be in <italic>one</italic>
>> field.]]>
>> </Content>
>> 
>> Any data inside the <![CDATA[ ... ]]> structure is not parsed by the
>> interpreter; it's kind of like HTML's <pre> tag.  you can use the
>> 'revXMLNodeContents' to retrieve the CDATA tag, so:
>> 
>>   put revXMLNodeContents(id,"/Content")
>> 
>> for my chunk above would return:
>> 
>>   <Red>This</Red> needs to be displayed <italic>formatted</italic> just
>>   like <bold>HTML</bold>; it should be in <italic>one</italic> field.
> 
> Thanks, Ken, that was very helpful.
> 
> Of course I actually wanted to have "This" displayed in red instead of
> between visible tags. But I can replace the <bold> with <b> etc to have
> normal HTML tags, so I can set the HTMLtext of the field to the content
> of 'Content'.
> 
> Next question:
> How do I set the content of a node to the <![CDATA[ ... ]]> structure?
> In my attempts it replaces the < and > to < and >. Should I just
> use the 'replace' function or is there a smarter way?

I think that's the only way at the moment... personally, this looks like a
bug to me - the DLL should recognize the CDATA tag prefix.

Ken Ray
Sons of Thunder Software
Web site: http://www.sonsothunder.com/
Email: kray at sonsothunder.com




More information about the use-livecode mailing list