[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Double Quotes in XML

gparsons

3/17/2006 8:31:00 PM

I'm trying to do something similar to the following:

<?xml version="1.0" encoding="utf-8"?>
<Rules id="ruleset1">
<Rule num="1">
<Description>Foo must equal "bar".</Description>
<Code>Foo = "bar"</Code>
</Rule>
</Rules>

I'm reading the actual rules and descriptions in from a giant file and
when i spit it back out into an xml file i get errors involving the
quotes around bar. Looking at examples that should be working i notice
there's a difference between the quotes (if this will show up in groups
it's: " vs " ). I'm by no means an xml expert (or even novice) so i
may just be missing something here, but it seems like it's something to
do with the encodings maybe? Anyone have any suggestions?

- Geoff

4 Answers

Mark Volkmann

3/17/2006 8:49:00 PM

0

On 3/17/06, gparsons <geoffrey.parsons@gmail.com> wrote:
> I'm trying to do something similar to the following:
>
> <?xml version="1.0" encoding="utf-8"?>
> <Rules id="ruleset1">
> <Rule num="1">
> <Description>Foo must equal "bar".</Description>
> <Code>Foo = "bar"</Code>
> </Rule>
> </Rules>
>
> I'm reading the actual rules and descriptions in from a giant file and
> when i spit it back out into an xml file i get errors involving the
> quotes around bar. Looking at examples that should be working i notice
> there's a difference between the quotes (if this will show up in groups
> it's: " vs " ). I'm by no means an xml expert (or even novice) so i
> may just be missing something here, but it seems like it's something to
> do with the encodings maybe? Anyone have any suggestions?

You need to do one of the following.
<Code Foo="bar"/>
<Code><Foo>bar</Foo></Code>
<Code>Foo=&quot;bar&quot;</Code>

I prefer the first option listed above.

On another note, I don't think it's typical to use uppercase the way you are.
I'd do it like this.
<code foo="bar"/>

--
R. Mark Volkmann
Object Computing, Inc.


gparsons

3/17/2006 9:24:00 PM

0

Unfortunately i don't have much control over the markup (i'm not even
sure the program that is reading this in is expecting valid xml...
sigh). turns out it was a problem with what i was reading in having
some funky stuff going on.

Mark Volkmann

3/18/2006 12:23:00 AM

0

On 3/17/06, Bob Hutchison <hutch@recursive.ca> wrote:
>
> On Mar 17, 2006, at 3:33 PM, gparsons wrote:
>
> > I'm trying to do something similar to the following:
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <Rules id="ruleset1">
> > <Rule num="1">
> > <Description>Foo must equal "bar".</Description>
> > <Code>Foo = "bar"</Code>
> > </Rule>
> > </Rules>
>
> This is well-formed XML.

I think it's not well-formed because the Code element contains text
with unescaped double-quotes. If you change them to &quot; then it's
well-formed.

--
R. Mark Volkmann
Object Computing, Inc.


Bob Hutchison

3/18/2006 10:58:00 AM

0


On Mar 17, 2006, at 7:22 PM, Mark Volkmann wrote:

> On 3/17/06, Bob Hutchison <hutch@recursive.ca> wrote:
>>
>> On Mar 17, 2006, at 3:33 PM, gparsons wrote:
>>
>>> I'm trying to do something similar to the following:
>>>
>>> <?xml version="1.0" encoding="utf-8"?>
>>> <Rules id="ruleset1">
>>> <Rule num="1">
>>> <Description>Foo must equal "bar".</Description>
>>> <Code>Foo = "bar"</Code>
>>> </Rule>
>>> </Rules>
>>
>> This is well-formed XML.
>
> I think it's not well-formed because the Code element contains text
> with unescaped double-quotes. If you change them to &quot; then it's
> well-formed.

It isn't really a matter of opinion, and you are nowhere near lazy
enough :-) Run it through a validator. Both rxp and xmllint believe
that it is OK. That is not to say that it wouldn't be better to
escape those three characters ( quot, apos, and gt -- you *must*
escape lt and amp) -- there's a lot of buggy software out there, and
a little prevention can save you lots of trouble.