c# - 使用 SED 提取 XML 标签之间的值

标签 c# windows sed grep

我从服务器接收以下格式的数据:

gin</type><sessionId>1601</sessionId><directory><default>DepthOfBook</default><study type="DepthOfBook"/

如何从该字符串中提取值 1601?我一直在尝试以下操作,但迷失了正确的 SED 语法:

    sed -n "/sessionId/,/\/sessionId/p" 

    sed -e "s/<sessionId/\n/g"| sed -n "/sessionId/,/\/sessionId/p" 

    sed -e "s/</\n/g"| sed -n "/sessionId/,/sessionId/p" 

如何提取该值(当字符串是一个长多行字符串时,通常是两个 XML 标记之间的值)?

谢谢。

最佳答案

这可能对你有用(GNU sed):

sed '/<sessionId>/!d;s//\n/;s/[^\n]*\n//;:a;$!{/<\/sessionId>/!N;//!ba};y/\n/ /;s/<\/sessionId>/\n/;P;D' file

关于c# - 使用 SED 提取 XML 标签之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12468449/

相关文章:

c# - 如何在 `Listview` 中的最后一首歌曲后停止音乐播放

Windows 批处理 : Unicode parameters for (robo) copy command

bash - 如何在开头添加带空格的行,并在末尾添加反斜杠?

linux - Bash 脚本记录平均 ping 时间,一天每 20 秒一次

bash - 在由 1 行组成的巨大 (12GB) 中用 }\n 替换每个 }?

c# - 路径存储在配置文件中?

c# - 在非静态类中,如何保留在多个不同类中同时调用的静态方法中使用的静态变量的值

windows - JSFL:FLfile.runCommandLine & 正确转义 Windows 命令行参数的空格

c# - ASP.NET MVC4 和 Web API 身份验证 + 授权(Windows 8 和 Web)

windows - 使用 Start 命令让 Windows 以批处理模式启动 R