与Windows批量解析XML文件 [英] Parse XML file with windows batch

查看:237
本文介绍了与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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆