【发布时间】:2020-07-28 07:13:19
【问题描述】:
我有一个格式如下的 XML 文件:
<classes>
<subject lb="Fall Sem 2020">
<name>Operating System</name>
<credit>3</credit>
<type>Theory</type>
<faculty>Prof. XYZ</faculty>
</subject>
<subject lb="Spring Sem 2020">
<name>Web Development</name>
<credit>3</credit>
<type>Lab</type>
</subject>
<subject lb="Fall Sem 2021">
<name>Computer Network</name>
<credit>3</credit>
<type>Theory</type>
<faculty>Prof. ABC</faculty>
</subject>
<subject lb="Spring Sem 2021">
<name>Software Engineering</name>
<credit>3</credit>
<type>Lab</type>
</subject>
</classes>
预期输出:
Fall Sem 2020
Spring Sem 2020
Fall Sem 2021
Spring Sem 2021
我想在一个数组中提取lb 的值。
我的尝试:我尝试使用sed -n "/lb="/,\/"/p" file.xml,但这个命令没有给我特定标签的值。
解决这个问题的正确方法是什么?
【问题讨论】:
-
Don't Parse XML/HTML With Regex. 我建议使用 XML/HTML 解析器 (xmlstarlet, xmllint ...)。
-
我知道 xmlstarlet 可以很好地处理所有与 xml 相关的操作,但目前我有一些限制。这就是我使用
sed命令的原因。