DOS/Windows xmlstarlet 使用字符串而不是 xml 文件
DOS/Windows xmlstarlet usage with a String instead of a xml file
xmlstarlet 可以与字符串而不是 xml 文件一起使用吗?
例如:
xmlstarlet sel -t -v "/*" "<pathlist><path>C:\file.txt</path></pathlist>"
而不是
xmlstarlet sel -t -v "/*" pathlist.xml
或者我还能用字符串实现什么?
当我回显字符串并将其通过管道传输到 xmlstarlet 时,它不起作用:
SET "_var=^<pathlist^>^<path^>C:\file.txt^</path^> ^</pathlist^>"
&
call echo %^_var% | xmlstarlet sel -t -v "//*"
给出错误:
< was unexpected at this time.
-:1.1: Document is empty
^
-:1.1: Start tag expected, '<' not found
^
这实际上是一项简单的任务,但我无法让它工作。我只想在 One-Liner 中向 xmlstarlet 回显一个字符串。
cmd.exe 语法很奇怪,以下使用 set /p
的技巧似乎有效:
C:\tmp><nul (set /p ="<pathlist><path>C:\file.txt</path></pathlist>") | xmlstarlet sel -t -v /*
C:\file.txt
/*
可能会扩展 glob(取决于您拥有的文件)。不幸的是,无法从 cmd.exe 引用它(扩展由 libc 代表 xmlstarlet 执行),因此在这种情况下您将不得不重写 XPath,例如/pathlist
相反。
来源:https://groups.google.com/d/msg/alt.msdos.batch.nt/RNug94fXI5s/BdgYJfNmXysJ via http://www.netikka.net/tsneti/info/tscmd047.htm
我没有找到关于为什么转义 <>
不适用于 |
重定向的解释??
C:\tmp> echo ^<^>
<>
C:\tmp> echo ^<^> | more
> was unexpected at this time.
xmlstarlet 可以与字符串而不是 xml 文件一起使用吗? 例如:
xmlstarlet sel -t -v "/*" "<pathlist><path>C:\file.txt</path></pathlist>"
而不是
xmlstarlet sel -t -v "/*" pathlist.xml
或者我还能用字符串实现什么? 当我回显字符串并将其通过管道传输到 xmlstarlet 时,它不起作用:
SET "_var=^<pathlist^>^<path^>C:\file.txt^</path^> ^</pathlist^>"
&
call echo %^_var% | xmlstarlet sel -t -v "//*"
给出错误:
< was unexpected at this time.
-:1.1: Document is empty
^
-:1.1: Start tag expected, '<' not found
^
这实际上是一项简单的任务,但我无法让它工作。我只想在 One-Liner 中向 xmlstarlet 回显一个字符串。
cmd.exe 语法很奇怪,以下使用 set /p
的技巧似乎有效:
C:\tmp><nul (set /p ="<pathlist><path>C:\file.txt</path></pathlist>") | xmlstarlet sel -t -v /*
C:\file.txt
/*
可能会扩展 glob(取决于您拥有的文件)。不幸的是,无法从 cmd.exe 引用它(扩展由 libc 代表 xmlstarlet 执行),因此在这种情况下您将不得不重写 XPath,例如/pathlist
相反。
来源:https://groups.google.com/d/msg/alt.msdos.batch.nt/RNug94fXI5s/BdgYJfNmXysJ via http://www.netikka.net/tsneti/info/tscmd047.htm
我没有找到关于为什么转义 <>
不适用于 |
重定向的解释??
C:\tmp> echo ^<^>
<>
C:\tmp> echo ^<^> | more
> was unexpected at this time.