Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Search and replace text in XML file?

Reply
Thread Tools

Search and replace text in XML file?

 
 
todd.tabern@gmail.com
Guest
Posts: n/a
 
      07-28-2012
I'm looking to search an entire XML file for specific text and replace that text, while maintaining the structure of the XML file. The text occurs within multiple nodes throughout the file.
I basically need to replace every occurrence C:\Program Files with C:\Program Files (x86), regardless of location. For example, that text appears within:
<URL>C:\Program Files\\Map Data\Road_Centerlines.shp</URL>
and also within:
<RoutingIndexPathName>C:\Program Files\Templates\RoadNetwork.rtx</RoutingIndexPathName>
....among others.
I've tried some non-python methods and they all ruined the XML structure. I've been Google searching all day and can only seem to find solutions that look for a specific node and replace the whole string between the tags.
I've been looking at using minidom to achieve this but I just can't seem to figure out the right method.
My end goal, once I have working code, is to compile an exe that can work on machines without python, allowing a user can click in order to perform the XML modification.
Thanks in advance.
 
Reply With Quote
 
 
 
 
Jason Friedman
Guest
Posts: n/a
 
      07-28-2012
> I'm looking to search an entire XML file for specific text and replace that text, while maintaining the structure of the XML file. The text occurs within multiple nodes throughout the file.
> I basically need to replace every occurrence C:\Program Files with C:\Program Files (x86), regardless of location. For example, that text appears within:
> <URL>C:\Program Files\\Map Data\Road_Centerlines.shp</URL>
> and also within:
> <RoutingIndexPathName>C:\Program Files\Templates\RoadNetwork.rtx</RoutingIndexPathName>
> ...among others.
> I've tried some non-python methods and they all ruined the XML structure. I've been Google searching all day and can only seem to find solutions that look for a specific node and replace the whole string between the tags.
> I've been looking at using minidom to achieve this but I just can't seem to figure out the right method.
> My end goal, once I have working code, is to compile an exe that can work on machines without python, allowing a user can click in order to perform the XML modification.


Is it as simple as this?

$ cat my.xml
<URL>C:\Program Files\\Map Data\Road_Centerlines.shp</URL>
and also within:
<RoutingIndexPathName>C:\Program
Files\Templates\RoadNetwork.rtx</RoutingIndexPathName>

$ python3
Python 3.2.3 (default, May 3 2012, 15:51:42)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> for line in open("my.xml"):

.... print(line.replace("C:\Program Files", "C:\Program Files
(x86)"), end="")
....
<URL>C:\Program Files (x86)\\Map Data\Road_Centerlines.shp</URL>
and also within:
<RoutingIndexPathName>C:\Program Files
(x86)\Templates\RoadNetwork.rtx</RoutingIndexPathName>

This solution assumes that you have no tags containing the string
"C:\Program Files".
 
Reply With Quote
 
 
 
 
Terry Reedy
Guest
Posts: n/a
 
      07-28-2012
On 7/27/2012 9:23 PM, http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:
> I'm looking to search an entire XML file for specific text and
> replace that text, while maintaining the structure of the XML file.


For a one-off project, or for experimentation, I would use a proper
text-editor* and run through with search/replace. For automation, use
Jason's suggestion of .replace, perhaps on a line-by-line basis.

* By definition, such only make changes you request. Notepad++ is one
such on Windows. You do not want a word or document processor, or, for
simple xml oblivious text substitutions, an xml processor. Such things
often make changes of various sorts.

--
Terry Jan Reedy



 
Reply With Quote
 
Mark Lawrence
Guest
Posts: n/a
 
      07-28-2012
On 28/07/2012 08:17, Terry Reedy wrote:
> On 7/27/2012 9:23 PM, (E-Mail Removed) wrote:
>> I'm looking to search an entire XML file for specific text and
>> replace that text, while maintaining the structure of the XML file.

>
> For a one-off project, or for experimentation, I would use a proper
> text-editor* and run through with search/replace. For automation, use
> Jason's suggestion of .replace, perhaps on a line-by-line basis.
>
> * By definition, such only make changes you request. Notepad++ is one
> such on Windows. You do not want a word or document processor, or, for
> simple xml oblivious text substitutions, an xml processor. Such things
> often make changes of various sorts.
>


I highly recommend the use of notepad++. If anyone knows of a better
text editor for Windows please let me know

--
Cheers.

Mark Lawrence.

 
Reply With Quote
 
MRAB
Guest
Posts: n/a
 
      07-28-2012
On 28/07/2012 09:29, Mark Lawrence wrote:
> On 28/07/2012 08:17, Terry Reedy wrote:
>> On 7/27/2012 9:23 PM, (E-Mail Removed) wrote:
>>> I'm looking to search an entire XML file for specific text and
>>> replace that text, while maintaining the structure of the XML file.

>>
>> For a one-off project, or for experimentation, I would use a proper
>> text-editor* and run through with search/replace. For automation, use
>> Jason's suggestion of .replace, perhaps on a line-by-line basis.
>>
>> * By definition, such only make changes you request. Notepad++ is one
>> such on Windows. You do not want a word or document processor, or, for
>> simple xml oblivious text substitutions, an xml processor. Such things
>> often make changes of various sorts.
>>

>
> I highly recommend the use of notepad++. If anyone knows of a better
> text editor for Windows please let me know
>

My own preference is EditPad. I liked EditPad Lite so much that I
bought EditPad Pro.
 
Reply With Quote
 
Paul Rudin
Guest
Posts: n/a
 
      07-31-2012
Terry Reedy <(E-Mail Removed)> writes:

> ... a proper text-editor*


> * ... Notepad++ is one such on Windows.


Surely emacs is the only such on any platform?

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: OT: Text editors (was Re: Search and replace text in XML file?) Tim Chase Python 10 08-31-2012 03:56 AM
OT: Text editors (was Re: Search and replace text in XML file?) Chris Angelico Python 9 07-29-2012 05:55 PM
Search/Replace text in XML file Lax Perl Misc 4 01-10-2008 02:47 AM
replace text in IFRAME using innerHTML.replace(...) possible? mscir Javascript 0 10-11-2005 11:21 PM
Search and Replace Text in XML file Dorsa XML 0 12-23-2003 09:31 PM



Advertisments