将文本文件的分隔部分读入CMD中的变量

时间:2017-02-07 21:33:58

标签: xml batch-file cmd

使用CMD批处理文件,我想要一种简单的方法从此XML文件中读取标签 pano_id 的内容为变量:

<?xml version="1.0" encoding="UTF-8" ?><panorama><data_properties image_width="13312" image_height="6656" tile_width="512" tile_height="512" image_date="2015-05" pano_id="_1OPn-SzCb5SkjEENmq7Pg" scene="1" imagery_type="5" level_id="5d4d985b8a990000" num_zoom_levels="5" lat="29.813101" lng="34.942808" original_lat="29.813101" original_lng="34.942808" elevation_wgs84_m="645.826720" elevation_egm96_m="629.255798"><copyright>© 2017 Google</copyright><text>Israel National Trail: Timna Lake to Be’er Metek</text><country>Israel</country></data_properties><projection_properties projection_type="spherical" pano_yaw_deg="124.649994" tilt_yaw_deg="-67.56" tilt_pitch_deg="6.0899997"/><annotation_properties><link yaw_deg="303.69" pano_id="_PGTJI1Vr6P4lSTHuegprQ" road_argb="0x80fdf872"><link_text></link_text></link><link yaw_deg="121.09" pano_id="Ip1M1lvUUebjfR0WEEbM0g" road_argb="0x80fdf872"><link_text></link_text></link></annotation_properties></panorama>

例如,变量%panorama%将设置为 _1OPn-SzCb5SkjEENmq7Pg

我该怎么做?感谢。

1 个答案:

答案 0 :(得分:1)

尝试使用xpath.bat - 它可以仅使用Windows内置功能通过xpath表达式从xml中提取值:

for /f "tokens=* delims=" %%# in ('xpath.bat "xml.xml" "//data_properties/@pano_id"') do ( 
  set "panorama=%%~#"
)
echo %panorama%

您应该确定xml编码确实是utf-8,否则解析将失败。