通过批处理文件从XML文件中提取文本

3

我需要通过批处理从XML文件中提取特定的文本。我需要提取的部分是在字符串标签(<string>example1</string>)和数据标签(<data>example2</data>)之间的文本。你有什么建议吗?谢谢!


请提取任何非二进制文件中的字符串,无论其在文件中的位置如何。 - SachaDee
@sachadee 用批处理文件不行吗? - user1599051
如果不行,我需要如何修改您的 "StringBetween.au3" 脚本以适应我的情况? - user1599051
你想从上面的行中提取哪些字符串?例如1和例如2? - gbabu
您可以考虑使用Windows Powershell,因为它本身支持XML DOM。 - Steve Guidi
3个回答

3
@echo OFF

del output.txt

for /f "delims=" %%i in ('findstr /i /c:"<string>" xml_file.xml') do call     :job "%%i"
goto :eof

:job

set line=%1

set line=%line:/=%
set line=%line:<=+%
set line=%line:>=+%
set line=%line:*+string+=%
set line=%line:+=&rem.%
echo.%line%>>output.txt



:eof

使用OP的输入文件输出-
D:\>draft.bat

D:\>type output.txt
000000000@gmail.com
default
Web form password
www.instagram.com (000000000@gmail.com)

www.instagram.com

你好,G


非常感谢!我认为脚本似乎已经运行成功了,因为没有出现任何错误或其他问题。但是,输出文件是否应该在批处理脚本所在的同一目录中创建?因为我找不到它。 - user1599051
我运行了脚本,这是输出文件中的内容:字符串 字符串 数据 字符串 字符串 字符串字符串 字符串 字符串 字符串 数据 字符串 字符串 字符串字符串 字符串 字符串 字符串 数据 字符串 字符串 字符串字符串 字符串 - user1599051
好的。我现在不在电脑旁,无法进行测试。我可能需要8个小时才能修复它。但是我没有看到当前代码存在任何问题。请确保不要漏掉任何字符或在我的代码中添加任何额外的空格。 - gbabu
这在我使用的上面的示例文件中完全正常工作。你尝试过上面的示例文件吗?看看这个链接 - gbabu
在此处下载它:http://www.datafilehost.com/d/5597b084...取消选中“使用我们的下载管理器并获取推荐下载”,以正常下载。当您下载完毕后,能否评论一下,我想尽快删除该链接。谢谢。 - user1599051
显示剩余8条评论

2

试试这个:

@echo off
setlocal EnableDelayedExpansion

(for /F "delims=" %%a in ('findstr /I /L "<string> <data>" theFile.xml') do (
   set "line=%%a"
   set "line=!line:*<string>=!"
   set "line=!line:*<data>=!"
   for /F "delims=<" %%b in ("!line!") do echo %%b
)) > result.txt

能够完美地提取<string>标签之间的内容,但无法提取<data>标签之间的内容。 - user1599051
如果XML文件只有一行,该如何使用? - Carlos Escalera Alonso

1
检查xpath.bat脚本:
call xpath.bat "xml.xml" "//data"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接