【问题标题】:How to extract a element value from XML String using windows batch script?如何使用 Windows 批处理脚本从 XML 字符串中提取元素值?
【发布时间】:2018-03-05 12:43:04
【问题描述】:

我正在尝试使用批处理从 xml 输出字符串中提取元素值。 使用了下面的代码,它适用于格式化的 xml 行,而不是单个 xml 字符串。例如:

格式化的 xml:*

<?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>

使用的批处理脚本:

@echo off 
setlocal enableextensions EnableDelayedExpansion 
set input="test.xml" 
for /F "tokens=2 delims=<>" %%I in ('type %input% ^|find "</password>"') do (
 set pwd=%%I echo !pwd! ) 

如何从任何未格式化的 xml 字符串中提取值?

【问题讨论】:

  • 使用的批处理脚本:@echo off setlocal enableextensions EnableDelayedExpansion set input="test.xml" for /F "tokens=2 delims=" %%I in ('type %input% ^| find ""') do (set pwd=%%I echo !pwd!)
  • 由于提供的文件示例不包含目标字符串,因此无法复制您的结果。 “未格式化的 XML 字符串”是什么意思?您想从您提供的样本中检索哪些信息?
  • 您应该考虑使用具有本机方法来读取和写入 XML 的脚本语言。 Jscript、Vbscript 或 Powershell。

标签: xml batch-file extract readxml


【解决方案1】:

不确定您遇到了什么问题
我使用了下面的代码,它对我有用。

@echo off  
color a  
cls  
cd "D:\"  
type 2.txt  
echo.  
echo.  
for /f "delims=" %%x in (2.txt) do set Build=%%x  
pause >nul  
exit  

在这里,我在本地驱动器上创建了一个 2.txt 文件,然后使用批处理脚本读取它。 “2.txt”包含未格式化的单行 xml 字符串。

请检查这是否也适合您。
如果没有,请提供您所面临问题的更多详细信息。

【讨论】:

  • 我需要从那个 xml 字符串中提取一个特定的标签值。如何做到这一点
猜你喜欢
  • 2014-02-15
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
  • 2017-09-17
  • 2013-11-04
  • 1970-01-01
  • 2017-06-18
相关资源
最近更新 更多