我是VB脚本的新手,并且正在尝试处理文件。
我正在尝试编写一个脚本,该脚本读取xml文件并将<Text>
和</Text>
标记之间的所有数据复制到新文件中。这应该发生在文件中的所有<Text>
和</Text>
部分。
我的文本文件如下。
<Text> M3XAUDT-A FILE M30000 --- AUDIT TRAIL STATISTICS --- RUN TUESDAY 07/02/02 AT 23:21 PAGE 1
RECORD COUNTS FOR CAE ON FILE M2AUD
</Text>
</Page>
<Page>
<Text> M3XAUDT-A FILE M30000 --- AUDIT TRAIL STATISTICS --- RUN TUESDAY 07/02/02 AT 23:21 PAGE 2
RECORD COUNTS FOR CAE ON FILE M3AUD
</Text>
</Page>
<Page>
<Text> M3XAUDT-A FILE M30000 --- AUDIT TRAIL STATISTICS --- RUN TUESDAY 07/02/02 AT 23:21 PAGE 3
RECORD COUNTS FOR CAE ON FILE M2AUD
</Text>
在我开始创建一个新文件来复制这些部分之前,我想我能看到是否使用msgbox拾取了正确的数据。
我尝试使用下面的脚本,但是在显示第一行后进入循环失败了。
Dim fso2, objStream2, strline, strline1,
set fso2=Createobject("Scripting.FileSystemObject")
if fso2.fileExists("C:\Harsha\1_Test\Source\APE_new.xml") then
set objStream2 = fso2.OpenTextFile("C:\Harsha\1_Test\Source\APE_new.xml")
i=1
do while not objStream2.AtEndOfStream
strline= strline & objStream2.Readline &vbNewLine
do while instr(strline,"<Text>")
strline1=strline1&objStream2.Readline &vbNewLine
msgbox strline1
do until instr(strline1,"</Text>")
strline2=strline2&strline1
loop
msgbox strline2
loop
loop
end if
ObjStream2.close
提前感谢您的帮助。
答案 0 :(得分:0)
试试这个:
Dim fso2, objStream2, strline, strline1, isReading
set fso2=Createobject("Scripting.FileSystemObject")
isReading = false
if fso2.fileExists("C:\Harsha\1_Test\Source\APE_new.xml") then
set objStream2 = fso2.OpenTextFile("C:\Harsha\1_Test\Source\APE_new.xml")
i=1
do while not objStream2.AtEndOfStream
strline= objStream2.Readline
if instr(strline,"<Text>") then
isReading = true
end if
if isReading = true then
strline1 = strline1 & strline & vbNewLine
msgbox "Read: " & strline
endif
if instr(strlin,"</Text>") then
isReading = false
msgbox "End of text, str is: " & strline1 & " , resetting strline1 var now"
strline1 = ""
end if
loop
objStream2.close
end if