db2 - 将 XML 转换为平面文件
问题描述
我有一个要求,我必须从 IFS 获取 XML 文件并将其放入平面文件。平面文件应完全按照 XML 数据的格式加载 例如,如果 XML 是
<Employee>
<FirstName>JIM</FirstName>
<LastName>SMITH</LastName>
<EmpAddress>
<StreetName>DARTMOUTH WAY</StreetName>
<STATE>OHIO</STATE>
</EmpAddress>
<EmpAddress>
<StreetName>SouthRidge Road</StreetName>
<STATE>WA</STATE>
</EmpAddress>
<PreviousCompany>
<CompName>DELL</CompName>
<CompAddress>
<StreetName>Road123</StreetName>
<STATE>WA</STATE>
</CompAddress>
<PreviousCompany>
<Employee>
那么 flt 文件数据应该是
JIM SMITH
DARTMOUTH WAY OHIO
SouthRidge Road WA
DELL
Road123 WA
所以基本上每个 XML 段都应该是平面文件中的一条记录。但是任何片段(如EmpAddress
orPreviousCompany
或CompAddress
)都可以重复多次。所以平面文件应该有相同的顺序。
我确实想到了 XML-INTO 和 XMLTABLE,但我找不到一个简单的解决方案。
请让我知道是否有一个易于实施的解决方案。
解决方案
我已经尝试过使用AWK
and进行相同的操作sed
。以下是代码:
#Removing blank line from the actual file using sed.
sed -r '/^\s*$/d' Employee >Employee1
Employee.awk
BEGIN { FS ="[></]";RS ="\n\n"; OFS =""}
$0 ~ search {print $5 "\t"$10,"\n"$17 "\t" $22,"\n"$32 "\t" $37,"\n"$47,"\n"$54 "\t" $59}
awk -f Employee.awk Employee1
输出:
JIM SMITH
DARTMOUTH WAY OHIO
SouthRidge Road WA
DELL
Road123 WA
推荐阅读
- ios - 用于底部文本视图和顶部搜索栏的 IOS 键盘
- php - 图像到 base64 编码问题 - PHP
- jquery - 剑道网格显示奇怪的日期时间而不是 null
- react-native - 调度后状态为空
- sql - 通过重置计数器来设置 Hive 条件计数?
- amazon-web-services - 从正在运行的 EC2 实例生成 EC2 启动模板
- laravel-5 - 更改密码重置链接
- python-2.7 - Python中的嵌套列表比较
- json - 模型类中 JsonNode 属性的 springfox 招摇配置
- ag-grid - React ag grid - 事件以查找用户在滚动时是否到达网格末尾