我对 regex、sed 等不太熟悉,现在有点懒得弄清楚,所以我如何提取这一行:
<yweather:astronomy sunrise="6:50 am" sunset="7:06 pm"/>
Run Code Online (Sandbox Code Playgroud)
让我知道是否需要更多的 xml 结构。
由于输入数据(您的 XML 文件)是结构化的,您最好对该结构化数据使用查询,而不是将其视为纯文本并与正则表达式混淆。
我们可以xmllint --xpath用来评估您的 xml 输入上的 XPath 表达式:
$ xmllint --xpath 'string(rss/channel/*[local-name()="astronomy"]/@sunrise)' weather.xml
6:48 am
Run Code Online (Sandbox Code Playgroud)
- 这有点令人费解,因为我们必须处理该文件中的不同命名空间,但仍然有效。
有关 XPath 的更多信息,该规范位于http://www.w3.org/TR/xpath/