首页 > 解决方案 > 如何从 XML 文件中提取 IP?

问题描述

我需要从 XML 数据文件中提取 IP。问题是<![CDATA[]><br>.

文件结构:

<IP><![CDATA[1.1.1.1]]></IP>

我尝试了不同的方法来做到这一点,但我仍然无法提取这些 IP。下面是一些例子:

grep -oP '(?<=<IP><![CDATA[).*?(?=]></IP>)' test.xml

它不适用于 CDATA 标签。我试过这个:

awk -F'[<[]>]' '/<IP><![CDATA[/ { print}/]]/' test.xml

这个也不行。也试过:

xpath test.xml //IP/![CDATA[/text

有什么建议么?先感谢您!

标签: xmlbashxpathgrepxml-parsing

解决方案


XPath 是处理 XML 的最自然的方式。XPath 知道如何处理 CDATA 部分。

这是一个正确的 XPath。

/IP/text()

或者

string(/IP/text())

输出

在此处输入图像描述


推荐阅读