复制一个字段内的数据 XML [英] Copy data inside one field XML

查看:52
本文介绍了复制一个字段内的数据 XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些像:

<channel update="i" site="merge-xmltv" site_id="" xmltv_id="Rai 1">Rai 1</channel>
<channel update="i" site="merge-xmltv" site_id="" xmltv_id="Rai 1 +2HD">Rai 1 +2HD</channel>
<channel update="i" site="merge-xmltv" site_id="" xmltv_id="Rai 1 +1HD">Rai 1 +1HD</channel>

我需要像这样将 xmltv_id 的值复制到 site_id 中:

I need copy the value of xmltv_id into site_id like this:

<channel update="i" site="merge-xmltv" site_id="Rai 1" xmltv_id="Rai 1">Rai 1</channel>
<channel update="i" site="merge-xmltv" site_id="Rai 1 +2HD" xmltv_id="Rai 1 +2HD">Rai 1 +2HD</channel>
<channel update="i" site="merge-xmltv" site_id="Rai 1 +1HD" xmltv_id="Rai 1 +1HD">Rai 1 +1HD</channel>

我想使用 SED,但我遇到了麻烦.

I was thinking to use SED but I am in the trouble.

感谢有人想要帮助我!

推荐答案

正如 Ruslan Osmanov 所指出的,这种工作的工具是 xmlstarlet.最明显的解决方案是:

As Ruslan Osmanov pointed out, the tool for this kind of job is xmlstarlet. The most obvious solution would be:

xmlstarlet ed -u "//channel/@site_id" -x "../@xmltv_id" input

然而,这在我的 xmlstarlet 版本中似乎不起作用.不过,您可以解决该问题:

However, that does not seem to work in my version of xmlstarlet. You can work around the problem, however:

xmlstarlet ed -u "//channel/@site_id" -x "string(../@xmltv_id)" input

这篇关于复制一个字段内的数据 XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆