Re: HTML tags in XML

2006-03-22 Thread Mark Brownell

From: Devin Asay [EMAIL PROTECTED]
Hi Folks,

Is it possible to store html styled text in an xml document and then  
successfully retrieve the text with html markup intact?

I'm working on an application where I need to save styled text in an  
XML document. I can successfully insert the htmlText of the styled  
field into the xml document so I end up with a node that looks like  
this:

comments
Here are my comments.
Some of the text is colored font color=#FFred/font   
font color=#FFblue/font
/comments

However, when I read this node in with the revXMLNodeContents()  
function the html tags are stripped out and all I get is naked text.  
Here's a code snippet:

Devin


Use a pull-parser function (see below)

Example :
put PNLPgetElement(pullThisTag, /pullThisTag, tPullThis) into 
tPullThisTag

for elements:

function PNLPgetElement tStTag, tEdTag, stngToSch
   put empty into zapped
   put the number of chars in tStTag into dChars
   put offset(tStTag,stngToSch) into tNum1
   put offset(tEdTag,stngToSch) into tNum2
   if tNum1  1 then
 return error
 exit PNLPgetElement
   end if
   if tNum2  1 then
 return error
 exit PNLPgetElement
   end if
   put char (tNum1 + dChars) to (tNum2 - 1) of stngToSch into zapped
   return zapped
end PNLPgetElement


For an array of elements:

function getPNLPelements tStartTag, tEndTag, StringToSearch
   put empty into tArray
   put 0 into tStart1
   put 0 into tStart2
   put 1 into tElementNum
   put the number of chars in tStartTag into dChars
   repeat
 put offset(tStartTag,StringToSearch,tStart1) into tNum1
 put (tNum1 + tStart1) into tStart1
 if tNum1  1 then exit repeat
 put offset(tEndTag,StringToSearch,tStart2) into tNum2
 put (tNum2 + tStart2) into tStart2
 if tNum2  1 then exit repeat
 --if tNum2  tNum1 then exit repeat
 put char (tStart1 + dChars) to (tStart2 - 1) of StringToSearch into zapped
 put zapped into tArray[tElementNum]
 add 1 to tElementNum
   end repeat
   return tArray
end getPNLPelements

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


HTML tags in XML

2006-03-21 Thread Devin Asay

Hi Folks,

Is it possible to store html styled text in an xml document and then  
successfully retrieve the text with html markup intact?


I'm working on an application where I need to save styled text in an  
XML document. I can successfully insert the htmlText of the styled  
field into the xml document so I end up with a node that looks like  
this:


comments
Here are my comments.
Some of the text is colored font color=#FFred/font amp;  
font color=#FFblue/font

/comments

However, when I read this node in with the revXMLNodeContents()  
function the html tags are stripped out and all I get is naked text.  
Here's a code snippet:


put revXMLNodeContents(vSessionTreeID,vCurrentComment) into  
tCommentTxt
set the htmlText of fld comments of cd theCard of stack  
ClipData to tCommentTxt


When I examine the tCommentTxt variable in the variable watcher I see:

Here are my comments.
Some of the text is colored red  blue

Notice that it correctly rendered the ampersand entity. But the  
formatting is gone.


Is there a way to do this? Will I have to resort to saving the  
RTFtext in the xml node or something like that?


Devin

Devin Asay
Humanities Technology and Research Support Center
Brigham Young University

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Trevor DeVore

On Mar 21, 2006, at 7:43 AM, Devin Asay wrote:


Hi Folks,

Is it possible to store html styled text in an xml document and  
then successfully retrieve the text with html markup intact?

...

comments
Here are my comments.
Some of the text is colored font color=#FFred/font amp;  
font color=#FFblue/font

/comments
...

Is there a way to do this? Will I have to resort to saving the  
RTFtext in the xml node or something like that?


Hi Devin,

You need to escape , ', , and  when entering data into an XML  
node.  I can't remember if RevXML has any handlers for this or if you  
just have to do it by hand.  For an example of the escape characters  
just do a Google search for xml escape characters.


You may want to check out Ken Ray's XML library.  I haven't used it  
but browsing through the API, there is a stsXML_replaceEntities that  
looks like it would do what you want.


--
Trevor DeVore
Blue Mango Learning Systems - http://www.bluemangolearning.com
[EMAIL PROTECTED]


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Devin Asay

On Mar 21, 2006, at 9:12 AM, Trevor DeVore wrote:


On Mar 21, 2006, at 7:43 AM, Devin Asay wrote:


Hi Folks,

Is it possible to store html styled text in an xml document and  
then successfully retrieve the text with html markup intact?


lt;snipgt;  ;-)

Is there a way to do this? Will I have to resort to saving the  
RTFtext in the xml node or something like that?


Hi Devin,

You need to escape , ', , and  when entering data into an XML  
node.  I can't remember if RevXML has any handlers for this or if  
you just have to do it by hand.  For an example of the escape  
characters just do a Google search for xml escape characters.


You may want to check out Ken Ray's XML library.  I haven't used it  
but browsing through the API, there is a stsXML_replaceEntities  
that looks like it would do what you want.


Thanks Trevor. I already knew that I had to escape those characters,  
plus '' when writing xml. You triggered a Duh! moment in my brain,  
as it dawned on me that I'd also have to escape those other  
characters in my html markup.


It's working now.

Devin

Devin Asay
Humanities Technology and Research Support Center
Brigham Young University

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Mark Wieder
Trevor-

Tuesday, March 21, 2006, 8:12:11 AM, you wrote:

 You need to escape , ', , and  when entering data into an XML
 node.  I can't remember if RevXML has any handlers for this or if you
 just have to do it by hand.  For an example of the escape characters
 just do a Google search for xml escape characters.

I think urlEncode() will do the trick here.

-- 
-Mark Wieder
 [EMAIL PROTECTED]

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Ken Ray
On 3/21/06 9:43 AM, Devin Asay [EMAIL PROTECTED] wrote:

 Is it possible to store html styled text in an xml document and then
 successfully retrieve the text with html markup intact?

Yes. You need to use a CDATA node instead of a normal element node. The
markup looks like this:

  ![CDATA[bThis is my markup/b]]

You can put anything into a CDATA node - it's ignored by the parser. My XML
Library handles getting and setting CDATA information for a node quite
easily - if your XML looked like this:

?xml version=1.0?
root
  myHTML![CDATA[bThis is my markup/b]]/myHTML
/root

You could get the data with:

  put stsXML_GetNodeData(/root/myHTML) into tHTML

and set it with stsXML_SetNodeData.

By keeping it as CDATA you don't need to replace characters to get what you
want...


Ken Ray
Sons of Thunder Software
Web site: http://www.sonsothunder.com/
Email: [EMAIL PROTECTED]

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Trevor DeVore

On Mar 21, 2006, at 9:34 AM, Mark Wieder wrote:


Trevor-

Tuesday, March 21, 2006, 8:12:11 AM, you wrote:


You need to escape , ', , and  when entering data into an XML
node.  I can't remember if RevXML has any handlers for this or if you
just have to do it by hand.  For an example of the escape characters
just do a Google search for xml escape characters.


I think urlEncode() will do the trick here.


I don't think this will work in this case.  For example, urlEncod 
(phi/p) would give you:


%3Cp%3Ehi%3C%2Fp%3E

When what you really want is:

lt;pgt;hilt;/pgt;

--
Trevor DeVore
Blue Mango Learning Systems - www.bluemangolearning.com
[EMAIL PROTECTED]


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Trevor DeVore

On Mar 21, 2006, at 9:41 AM, Ken Ray wrote:

 My XML Library handles getting and setting CDATA information for a  
node quite

easily


Ken,

This is good to know.  The RevXML external doesn't handle CDATA, does  
it?  I seem to recall that when I tested using CDATA with RevXML it  
didn't work which is kind of a bummer.



--
Trevor DeVore
Blue Mango Learning Systems - www.bluemangolearning.com
[EMAIL PROTECTED]


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Ken Ray
On 3/21/06 11:51 AM, Trevor DeVore [EMAIL PROTECTED] wrote:

 On Mar 21, 2006, at 9:41 AM, Ken Ray wrote:
 
  My XML Library handles getting and setting CDATA information for a
 node quite
 easily
 
 Ken,
 
 This is good to know.  The RevXML external doesn't handle CDATA, does
 it?  I seem to recall that when I tested using CDATA with RevXML it
 didn't work which is kind of a bummer.

Actually, you can *retrieve* CDATA with revXMLNodeContents, but you can't
*set* it. That's part of the reason I'm still updating my XML Library. ;-)

Here's an example:

Contents of Field 1:
--
?xml version=1.0?
root
test
  ![CDATA[bThis is a test/b]]
/test
/root

put fld 1 into tXML
put revCreateXMLTree(tXML,true,true) into tID
put revXMLNodeContents(tID,/root/test)

RETURNS:
   bThis is a test/b

put revXMLText(tID)

RETURNS:
  ?xml version=1.0?
  roottest![CDATA[bThis is a test/b]]/test/root


Now, we try to set the data:

revPutIntoXMLNode tID,/root/test,bThis is another test/b
put revXMLText(tID)

RETURNS:
  ?xml version=1.0?
  roottestlt;bgt;This is another testlt;/bgt;/test/root


Trying it with CDATA tags already around it:

revPutIntoXMLNode tID,/root/test,![CDATA[bThis is another test/b]]
put revXMLText(tID)

RETURNS:
  ?xml version=1.0?
  roottestlt;![CDATA[lt;bgt;This is another
testlt;/bgt;]]gt;/test/root

HTH,

Ken Ray
Sons of Thunder Software
Web site: http://www.sonsothunder.com/
Email: [EMAIL PROTECTED]


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Trevor DeVore

On Mar 21, 2006, at 10:30 AM, Ken Ray wrote:

Actually, you can *retrieve* CDATA with revXMLNodeContents, but you  
can't
*set* it. That's part of the reason I'm still updating my XML  
Library. ;-)


...

Trying it with CDATA tags already around it:

revPutIntoXMLNode tID,/root/test,![CDATA[bThis is another  
test/b]]

put revXMLText(tID)

RETURNS:
  ?xml version=1.0?
  roottestlt;![CDATA[lt;bgt;This is another
testlt;/bgt;]]gt;/test/root


Thanks for the info Ken.  Your XML lib looks very cool.


--
Trevor DeVore
Blue Mango Learning Systems - www.bluemangolearning.com
[EMAIL PROTECTED]


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Mark Wieder
Trevor-

Tuesday, March 21, 2006, 9:43:36 AM, you wrote:

 On Mar 21, 2006, at 9:34 AM, Mark Wieder wrote:

 Trevor-

 Tuesday, March 21, 2006, 8:12:11 AM, you wrote:

 You need to escape , ', , and  when entering data into an XML
 node.  I can't remember if RevXML has any handlers for this or if you
 just have to do it by hand.  For an example of the escape characters
 just do a Google search for xml escape characters.

 I think urlEncode() will do the trick here.

 I don't think this will work in this case.  For example, urlEncod 
 (phi/p) would give you:

 %3Cp%3Ehi%3C%2Fp%3E

 When what you really want is:

 lt;pgt;hilt;/pgt;

Yes and no. As long as you have the data stored properly encoded then
you should be able to decode it on the way out:

set the htmlText of field grunt to urlDecode(xmlData)

-- 
-Mark Wieder
 [EMAIL PROTECTED]

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Trevor DeVore

On Mar 21, 2006, at 11:10 AM, Mark Wieder wrote:

Yes and no. As long as you have the data stored properly encoded then
you should be able to decode it on the way out:

set the htmlText of field grunt to urlDecode(xmlData)


Oh, I see what you are getting at.  Yeah, that would work but  
wouldn't this only work if the XML was only used in Rev.  Wouldn't it  
cause problems for other software that tried to read your XML document?


--
Trevor DeVore
Blue Mango Learning Systems - www.bluemangolearning.com
[EMAIL PROTECTED]


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Stephen Barncard
See if URLEncode() and URLDecode() will package and recover your text 
and/or htmltext to XML's liking...it works for me on other stuff...


sqb


On Mar 21, 2006, at 7:43 AM, Devin Asay wrote:


Hi Folks,

Is it possible to store html styled text in an xml document and 
then successfully retrieve the text with html markup intact?

...

comments
Here are my comments.
Some of the text is colored font color=#FFred/font amp; 
font color=#FFblue/font

/comments
...

Is there a way to do this? Will I have to resort to saving the 
RTFtext in the xml node or something like that?


Hi Devin,

You need to escape , ', , and  when entering data into an XML 
node.  I can't remember if RevXML has any handlers for this or if 
you just have to do it by hand.  For an example of the escape 
characters just do a Google search for xml escape characters.


You may want to check out Ken Ray's XML library.  I haven't used it 
but browsing through the API, there is a stsXML_replaceEntities that 
looks like it would do what you want.


--
Trevor DeVore
Blue Mango Learning Systems - http://www.bluemangolearning.com
[EMAIL PROTECTED]


--
stephen barncard
s a n  f r a n c i s c o
- - -  - - - - - - - - -
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: HTML tags in XML

2006-03-21 Thread Mark Wieder
Trevor-

Tuesday, March 21, 2006, 11:19:29 AM, you wrote:

 On Mar 21, 2006, at 11:10 AM, Mark Wieder wrote:
 Yes and no. As long as you have the data stored properly encoded then
 you should be able to decode it on the way out:

 set the htmlText of field grunt to urlDecode(xmlData)

 Oh, I see what you are getting at.  Yeah, that would work but  
 wouldn't this only work if the XML was only used in Rev.  Wouldn't it
 cause problems for other software that tried to read your XML document?

Yes, I should think so. It would have to decode it back. I've been
assuming this was just for rev data, but if you're going outside the
sandbox then you'd need to stick with what the DTD says. Ken's CDATA
approach would probably be the best way to deal with it in that case.

-- 
-Mark Wieder
 [EMAIL PROTECTED]

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution