?
Solved

Replace XML Element Content using VB

Posted on 2007-11-17
3
Medium Priority
?
733 Views
Last Modified: 2013-11-26
Hi,

I am new to XML and have a couple of questions. I have a XML document. How can I replace the content of the elements using VB? I want to replace the content with another similar XML document. Some of the information will be there, and some not. I hope this is enough information to get started.

Here is a small sample of my XML:

<Core>
<title>DocTitle</title>
<publisher>Who Published</publisher>
<date>0</date>
<format>text/xml</format>
<language>EN</language>
<rights>Who has rights<rights>
</Core>

Open in new window

0
Comment
Question by:ALawrence007
  • 2
3 Comments
 
LVL 19

Accepted Solution

by:
weellio earned 2000 total points
ID: 20304766
here is one i use.
 
you can either script it or at commandline you can just type
"cscript replace.vbs C:\Scripts\file.xml Bob superman"
and it will replace all instances of bob with superman

Const ForReading = 1
Const ForWriting = 2
 
If Wscript.Arguments.Count <> 3 Then
WScript.Echo "example" & VbCrLf & "cscript replace.vbs C:\Scripts\Text.txt Jim James"
WScript.Quit
End if
 
strFileName = Wscript.Arguments(0)
strOldText = Wscript.Arguments(1)
strNewText = Wscript.Arguments(2)
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)
 
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, strOldText, strNewText)
 
Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.WriteLine strNewText
objFile.Close

Open in new window

0
 

Author Comment

by:ALawrence007
ID: 20304851
Thanks weellio,

Would this work if I want to replace just the title maybe or maybe the title and the publisher?

<Core>
<title>DocTitle</title>
<publisher>Who Published</publisher>
0
 
LVL 19

Expert Comment

by:weellio
ID: 20308939
to make sure i understand correctly,.
do you just want to replace one word with another word?
if so, then the script above will do exactly what you need

start - run
type "replace.vbs C:\Scripts\file.xml Doctitle newdoctitle"
and all instances will be replaced.

or you can just open the file in notepad and click edit-replace



if you want a script to seach and find <title>sometitle</title> then replace everying between the 'title' fields, then i'll need to write a script that is a little different.
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

Browsing the questions asked to the Experts of this forum, you will be amazed to see how many times people are headaching about monster regular expressions (regex) to select that specific part of some HTML or XML file they want to extract. The examp…
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
Integration Management Part 2
Screencast - Getting to Know the Pipeline
Suggested Courses
Course of the Month15 days, 16 hours left to enroll

850 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