【发布时间】:2011-07-05 11:56:05
【问题描述】:
我的系统上保存了一个 HUUUGE HTML 文件,其中包含来自产品目录的数据。数据的结构使得每个产品记录的名称都在两个标签 (name) 和 (/name) 之间。
每个产品最多有 3 个属性:名称、产品 ID 和颜色,但并非所有产品都具有所有这些属性。
如何在不混淆产品属性的情况下为每个产品提取这些数据?该文件也是 50 兆字节!
代码示例 ....
<name>'hat'</name>
blah blah blah
<prodId>'1829493'</prodId>
blah blah blah
<color>'cyan'</color>
blah blah
blah blah blah
blah blah blah
<name>'shirt'</name>
blah blah blahblah blah blah
<prodId>'193'</prodId>
<name>'dress'</name>
blah blah blah
blah blah blah
<prodId>'18'</prodId>
<color>'dark purple'</color>
【问题讨论】:
-
发布一些代码。如果输入数据的格式足够好,也许有一个简单的答案。
-
看起来像是在读取 xml 文档。您可以尝试稍微更改 xmlread 帮助页面 (mathworks.com/help/techdoc/ref/xmlread.html) 中作为示例提供的函数。
-
@Kerrek SB 我添加了一个示例代码“块”。
-
@Bob:嗯,在这种受限情况下,如果您保证格式与示例中的完全相同,您可能会使用正则表达式来提取三个字段。
sed或awk之类的东西应该让您编写一个命令来将数据转换为您需要的任何格式。 -
name/prodId/color 标签是否包含在另一个元素中,例如
<item>?
标签: html xml matlab extract large-files