与Windows批量解析XML文件 [英] Parse XML file with windows batch
本文介绍了与Windows批量解析XML文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我怎么能提取像标记℃至US_NY的字符串;从XML文件
;地点>< /地点&gt?我FINDSTR尝试过,但换行是有问题的。
<?XML版本=1.0编码=UTF-16&GT?;
&所述;装置>
<剂>
<版本>
2.0.0.2
< / VERSION>
<连接GT&;
<地点>
US_NY
< /地点>
<&SERVERIP GT;
127.0.0.1
< / SERVERIP>
<&TCPPORT GT;
5656
< / TCPPORT>
<&PollInterval的GT;
五
< /&PollInterval的GT;
< / CONNECTION>
< /剂>
&所述; /装置>
解决方案
还有一个
关闭@echo
SETLOCAL ENABLEEXTENSIONS enabledelayedexpansion
集XMLFILE =%〜1
FOR / F令牌= 1,2 = delims:%%的n('FINDSTR / N / I / C:<地点>,%XMLFILE%')做(
FOR / F令牌= *%% l在('键入%XMLFILE%^ |更多+ %% N')不要将位置= %% L&放大器;转到ENDLOOP
)
:ENDLOOP
回声%位置%
How can I extract an STRING like "US_NY" between the tags <LOCATION></LOCATION>
from a XML file? I tried it with FINDSTR, but the line breaks are problematic.
<?xml version="1.0" encoding="utf-16"?>
<DEVICE>
<AGENT>
<VERSION>
2.0.0.2
</VERSION>
<CONNECTION>
<LOCATION>
US_NY
</LOCATION>
<SERVERIP>
127.0.0.1
</SERVERIP>
<TCPPORT>
5656
</TCPPORT>
<POLLINTERVAL>
5
</POLLINTERVAL>
</CONNECTION>
</AGENT>
</DEVICE>
解决方案
One more
@echo off
setlocal enableextensions enabledelayedexpansion
set "xmlFile=%~1"
for /f "tokens=1,2 delims=:" %%n in ('findstr /n /i /c:"<LOCATION>" "%xmlFile%"') do (
for /f "tokens=*" %%l in ('type "%xmlFile%" ^| more +%%n') do set "location=%%l" & goto endLoop
)
:endLoop
echo %location%
这篇关于与Windows批量解析XML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文