Solved

Inserting carriage returns in xml text

Posted on 2011-03-16
8
565 Views
Last Modified: 2013-11-18
I'm using PHP to query an MySql database and produce an xml file for another site.
I'm concating 3 of the database fields into one xml tag but want to add a carriage return between them. What should I be using?

$xmltext = $field1. "carriage return here".$field2. "carriage return here".$field3;

$xmltext = htmlspecialchars($xmltext);
$xmltext = addslashes($xmltext);

$_xml .="<Description>".urlencode($xmltext)."</Description>\r";
0
Comment
Question by:fionafenton
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
8 Comments
 
LVL 8

Expert Comment

by:Rik-Legger
ID: 35147144
You want to know how to add an seperator with mysql?
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws
mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');
        -> 'First name,Second name,Last Name'

Open in new window


Or do you need some advice on what sign to use as seperator?
In that case i would just use something then never will be used in the field texts.
My suggestion is just a semicolon (;) but i'm not aware of your data.
0
 
LVL 1

Author Comment

by:fionafenton
ID: 35147219
No, I want to know what to use for a carriage return so that it displays correctly when inserted into an xml tag.
I've tried <br>, &#xA;,&#xD; and &#13;&#10;  but they display exactly as written when displayed on the final web page.
i.e.
text from field 1.&#13;&#10; text from field 2.&#13;&#10; text from field3.

Rather than
text from field 1.
text from field 2.
text from field 3.
0
 
LVL 8

Expert Comment

by:Rik-Legger
ID: 35147250
Than stop using this:
$xmltext = htmlspecialchars($xmltext);
$xmltext = addslashes($xmltext);

Open in new window


And start using htmlentities() and html_entity_decode
http://www.php.net/manual/en/function.htmlentities.php
http://php.net/manual/en/function.html-entity-decode.php
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 1

Author Comment

by:fionafenton
ID: 35147628
I have no control over what happens to the data at the other end, so html-entity-decode is irrelevant.
If I use <br> as the carriage turn it shouldn't make any difference whether I use htmlspecialchars or htemlentities. However, when I use <br> it is displayed as that in the browser.
I'm sure it's to do with the way the other website (which I'm feeding into) handles the data. I think I need a non html way of inserting a carriage return. I have also tried /n and /r but these don't work either.
0
 
LVL 8

Expert Comment

by:Rik-Legger
ID: 35147651
If you don't have control over the other website and the other website does not 'decode' your encoded data than this is impossible.
0
 
LVL 1

Author Comment

by:fionafenton
ID: 35153349
I found the solution myself through trial and error.
I needed to use %0a and not urlencode it.

My code is now like this

$xmltext = $field1. "carriage return here".$field2. "carriage return here".$field3;

$xmltext = htmlspecialchars($xmltext);
$xmltext = addslashes($xmltext);

$_xml .="<Description>".urlencode(addslashes(htmlspecialchars($field1)))."%0A".urlencode(addslashes(htmlspecialchars($field2)))."%0A".urlencode(addslashes(htmlspecialchars($field3)))."%0A"."</Description>\r";
0
 
LVL 1

Accepted Solution

by:
fionafenton earned 0 total points
ID: 35153361
Sorry - my code is now like this (remove the first 3 lines of code above)

$_xml .="<Description>".urlencode(addslashes(htmlspecialchars($field1)))."%0A".urlencode(addslashes(htmlspecialchars($field2)))."%0A".urlencode(addslashes(htmlspecialchars($field3)))."%0A"."</Description>\r";
0
 
LVL 1

Author Closing Comment

by:fionafenton
ID: 35178868
Found solution myself
0

Featured Post

MIM Survival Guide for Service Desk Managers

Major incidents can send mastered service desk processes into disorder. Systems and tools produce the data needed to resolve these incidents, but your challenge is getting that information to the right people fast. Check out the Survival Guide and begin bringing order to chaos.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Preface This is the third article about the EE Collaborative Login Project. A Better Website Login System (http://www.experts-exchange.com/A_2902.html) introduces the Login System and shows how to implement a login page. The EE Collaborative Logi…
This article discusses four methods for overlaying images in a container on a web page
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question