On Tue, Nov 2, 2010 at 3:59 PM, David Kahn <[email protected]>wrote:
> > > On Tue, Nov 2, 2010 at 3:50 PM, David Kahn <[email protected]>wrote: > >> >> >> On Tue, Nov 2, 2010 at 3:22 PM, Marnen Laibow-Koser <[email protected] >> > wrote: >> >>> David Kahn wrote in post #958607: >>> > Cant seem to find an answer to this on google: >>> > >>> > If I have this value as the text within an attribute in my xml source: >>> > "a2/PP00nFwWa7I8Jog7bcw==\n" >>> > >>> > When I ask Nokogiri to return it, why does it return this: >>> > "a2/PP00nFwWa7I8Jog7bcw== " (the last character I confirmed in the >>> > debugger >>> > as a space character). So it seems Nokogiri is converting the "\n" to a >>> > space. >>> > >>> > Is there a way to tell Nokogiri to return verbatim? I am dealing with >>> > encrypted data and this modification which it is making to the xml >>> > source is >>> > significant? >>> >>> You probably need to use the xml:space attribute in your source >>> document, or at least that's the impression I get from >>> http://msdn.microsoft.com/en-us/library/ms256097.aspx . >>> >> >> Thanks Marnen - that was a really good idea, I just tried it in the >> console and it does not seem to help for the "\n" (results below) is it >> possible there is some other setting which would preserve the "\n"? This is >> really strange to me as these characters are within a string literal.. but >> it actually does also surprise me about the spaces. >> >> # without the xml:space="preserve" >> ruby > doc_enc = "<BORROWER >> _SSN=\"a2/PP00nFwWa7I8Jog7bcw==\n\"></BORROWER>" >> => "<BORROWER _SSN=\"a2/PP00nFwWa7I8Jog7bcw==\n\"></BORROWER>" >> ruby > Nokogiri::XML(doc_enc) >> => #<Nokogiri::XML::Document:0x12ff91c name="document" >> children=[#<Nokogiri::XML::Element:0x12ff71e name="BORROWER" >> attributes=[#<Nokogiri::XML::Attr:0x12ff6d8 name="_SSN" >> value="a2/PP00nFwWa7I8Jog7bcw== ">]>]> >> ruby > nd = Nokogiri::XML(doc_enc) >> => #<Nokogiri::XML::Document:0x12fded2 name="document" >> children=[#<Nokogiri::XML::Element:0x12fdcac name="BORROWER" >> attributes=[#<Nokogiri::XML::Attr:0x12fdc3e name="_SSN" >> value="a2/PP00nFwWa7I8Jog7bcw== ">]>]> >> ruby > nd.xpath("BORROWER").attribute("_SSN").value >> => "a2/PP00nFwWa7I8Jog7bcw== " >> >> # with xml:space=\"preserve\" >> ruby > doc_enc = "<BORROWER xml:space=\"preserve\" >> _SSN=\"a2/PP00nFwWa7I8Jog7bcw==\ >> => "<BORROWER xml:space=\"preserve\" >> _SSN=\"a2/PP00nFwWa7I8Jog7bcw==\n\"></BORROWER>" >> ruby > Nokogiri::XML(doc_enc) => #<Nokogiri::XML::Document:0x12f7244 >> name="document" children=[#<Nokogiri::XML::Element:0x12f708c name="BORROWER" >> attributes=[#<Nokogiri::XML::Attr:0x12f705a name="space" >> namespace=#<Nokogiri::XML::Namespace:0x12f6f56 prefix="xml" href=" >> http://www.w3.org/XML/1998/namespace"> value="preserve">, >> #<Nokogiri::XML::Attr:0x12f7050 name="_SSN" value="a2/PP00nFwWa7I8Jog7bcw== >> ">]>]> >> ruby > >> nd.xpath("BORROWER").attribute("_SSN").value => >> "a2/PP00nFwWa7I8Jog7bcw== " >> ruby > >> > > What seems even more insane is that if I wrap the encrypted string in > characters (pipe in this case), it still takes away my "\n": > > > => "<BORROWER xml:space=\"preserve\" > _SSN=\"|a2/PP00nFwWa7I8Jog7bcw==\n|\"></BORROWER>" > ruby-1.9.2-p0 > > Nokogiri::XML(doc_enc) > => #<Nokogiri::XML::Document:0x12eb1d8 name="document" > children=[#<Nokogiri::XML::Element:0x12eafd0 name="BORROWER" > attributes=[#<Nokogiri::XML::Attr:0x12eaf94 name="space" > namespace=#<Nokogiri::XML::Namespace:0x12eaea4 prefix="xml" href=" > http://www.w3.org/XML/1998/namespace"> value="preserve">, > *#<Nokogiri::XML::Attr:0x12eaf8a > name="_SSN" value="|a2/PP00nFwWa7I8Jog7bcw== |">]>]>* > > > >> Sorry for all the addl posts but *also* in CDATA!!! Can the chars "\n" *never* mean anything but newline in our world? => "<BORROWER _SSN=\"[CDATA[a2/PP00nFwWa7I8Jog7bcw==\n]]\"></BORROWER>" ruby-1.9.2-p0 > Nokogiri::XML(doc_enc) => #<Nokogiri::XML::Document:0x12e6f16 name="document" children=[#<Nokogiri::XML::Element:0x12e6d04 name="BORROWER" attributes=[#<Nokogiri::XML::Attr:0x12e6cd2 name="_SSN" value="[CDATA[a2/PP00nFwWa7I8Jog7bcw== ]]">]>]> > >> >> >>> Best, >>> -- >>> Marnen Laibow-Koser >>> http://www.marnen.org >>> [email protected] >>> >>> -- >>> Posted via http://www.ruby-forum.com/. >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Ruby on Rails: Talk" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<rubyonrails-talk%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>> >>> >> > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

