# How to parse attributes in ruby?

**URL:** <https://www.ruby-forum.com/t/how-to-parse-attributes-in-ruby/130318>\
**Category:** Ruby\
**Created:** [February 27, 2008, 10:04am UTC](https://www.ruby-forum.com/t/how-to-parse-attributes-in-ruby/130318 "2008-02-27T10:04:05Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![martin\_mercy2001](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/d2c977/32.png) [@martin\_mercy2001](https://www.ruby-forum.com/u/martin_mercy2001)\
**Post date:** [February 27, 2008, 10:04am UTC](https://www.ruby-forum.com/t/how-to-parse-attributes-in-ruby/130318/1 "2008-02-27T10:04:05Z")

</div>

Dear friends,

I’am in process of creating a new parser class. My parser was showing  
parsing errors in case of input like,

```
<product prod_name="jean" size=" 24" boot-cut" price="$99">

```

i have got parsing error in attributes values " 24" boot-cut". I was  
reading attributes values from " to “. But in above case double  
quotes(”) comes three times so my parser was not able to read it  
properly.

How to solve the above problem?

Thanks in advance

Regards,  
Martin

---

<div class="post-metadata">

**Author:** ![martin\_mercy2001](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/d2c977/32.png) [@martin\_mercy2001](https://www.ruby-forum.com/u/martin_mercy2001)\
**Post date:** [February 27, 2008, 10:17am UTC](https://www.ruby-forum.com/t/how-to-parse-attributes-in-ruby/130318/2 "2008-02-27T10:17:28Z")

</div>

On Wed, Feb 27, 2008 at 1:03 AM, dare ruby [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> properly.
> 
> How to solve the above problem?

I’d suggest you require that "s within strings be escaped somehow.  
Otherwise, the input is ambiguous - it might as well be ‘size = “24”’  
followed by an unterminated ‘"boot cut’

martin

---

<div class="post-metadata">

**Author:** ![martin\_mercy2001](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/d2c977/32.png) [@martin\_mercy2001](https://www.ruby-forum.com/u/martin_mercy2001)\
**Post date:** [February 27, 2008, 11:09am UTC](https://www.ruby-forum.com/t/how-to-parse-attributes-in-ruby/130318/3 "2008-02-27T11:09:54Z")

</div>

Thank you sebastian and martin. so its invalid to pass xml like that i  
hope.  
The attribute value should be like,

```
size=' 24" boot-cut '

or like,

size=" 24' boot-cut"

```

Is the above xml is valid. Please suggest a better way of inputs in  
proper xml for above attributes.

regards,  
Martin

---

<div class="post-metadata">

**Author:** ![martin\_mercy2001](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/d2c977/32.png) [@martin\_mercy2001](https://www.ruby-forum.com/u/martin_mercy2001)\
**Post date:** [February 27, 2008, 11:25am UTC](https://www.ruby-forum.com/t/how-to-parse-attributes-in-ruby/130318/4 "2008-02-27T11:25:09Z")

</div>

dare ruby wrote:

> Is the above xml is valid. Please suggest a better way of inputs in  
> proper xml for above attributes.

Yes, it’s valid, but I suggest a better way:

size=" 24" boot-cut"

Replacing " with its XML entity “. Any attribute value should be  
processed to replace special XML characters (”’\<\>&) with their entity.

---

<div class="post-metadata">

**Author:** ![martin\_mercy2001](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/d2c977/32.png) [@martin\_mercy2001](https://www.ruby-forum.com/u/martin_mercy2001)\
**Post date:** [February 27, 2008, 10:28am UTC](https://www.ruby-forum.com/t/how-to-parse-attributes-in-ruby/130318/5 "2008-02-27T10:28:44Z")

</div>

dare ruby wrote:

> My parser was showing  
> parsing errors in case of input like,
> 
> Â Â \<product prod\_name=“jean” size=" 24" boot-cut" price="$99"\>

Well, in case that the input is supposed to be XML, your parser was  
right to  
do so as the above is not valid.
