根据列表中的值更改 xml 字段值
Posted
技术标签:
【中文标题】根据列表中的值更改 xml 字段值【英文标题】:Change xml field value depending on values from list 【发布时间】:2017-02-21 08:46:14 【问题描述】:我有一个包含多个字段的 XML 文件。 其中一个字段是参考编号(唯一)。 另一个字段是 profile-id(不是唯一的),它对于所有列表总是相同的。
另外,我有一个参考编号列表及其配置文件 ID(在 excel 文件中)。 我想要做的是自动匹配参考号字段,并根据列表更改xml中的profile-id字段,以便生成的xml将正确列出参考号及其各自的profile-ids列表而不是他们现在拥有的一般、相同的个人资料。
这可能吗?
在下面的示例中:z303-profile-id 字段对于两个顾客都是相同的,每个人在 z303-ref 中都有一个唯一的标识符,并且前者根据列表中的后者进行更改。
谢谢。
例子:
<patron-record>
<z303>
<z303-ref>000018804</z303-ref>
<z303-profile-id>USE_MSL</z303-profile-id>
</z303>
</patron-record>
<patron-record>
<z303>
<z303-ref>000018867</z303-ref>
<z303-profile-id>USE_MSL</z303-profile-id>
</z303>
</patron-record>
列表:
000018804 full staff
000018867 Tester
结果:
<patron-record>
<z303>
<z303-ref>000018804</z303-ref>
<z303-profile-id>full staff</z303-profile-id>
</z303>
</patron-record>
<patron-record>
<z303>
<z303-ref>000018867</z303-ref>
<z303-profile-id>Tester</z303-profile-id>
</z303>
</patron-record>
【问题讨论】:
你想用什么编程语言? 无论哪种语言都能以最简单的方式完成。我只知道 jquery、C# 以及 html5 和 CSS 之类的东西,所以我必须从头开始学习如何做到这一点。 你能删除不相关的元素,而是显示记录是如何重复的吗? 完成。如果这有帮助,我也知道 SQL。 完成了一半。我仍然不明白记录在什么级别上重复,即请使用 2 参考列表。 【参考方案1】:您可以在xsh 中执行此操作,这是我碰巧维护的一个工具:
perl
open my $LST, '<', shift or die $!;
while (<$LST>)
chomp;
my ($ref, $id) = split ' ', $_, 2;
$profile_id->$ref = $id;
;
open shift ;
for //patron-record/z303
my $new_id = xsh:lookup('profile_id', z303-ref) ;
if $new_id set z303-profile-id $new_id ;
save :b ;
调用
xsh -al script.xsh file.lst file.xml
如果您也在 XML 文件中指定列表,代码会简单得多。
【讨论】:
不幸的是,该列表是从外部来源提供给我的,但也许可以对其进行转换。我会检查 :) 那是我需要运行的批处理文件的代码吗?非常感谢! :D 这是一个可以运行的xsh
脚本,下一个块显示如何从命令行或脚本运行它。
不,这是一个文本文件,如果你复制xls文件的内容,你可以得到。可以处理 XLS 文件,但非常复杂。
所以我只是将 xsl 复制粘贴到 txt 文件中,然后将其更改为 lst 文件?
:b
选项到save
保留备份,因此如果出现问题,您可以随时恢复原始 XML :-)以上是关于根据列表中的值更改 xml 字段值的主要内容,如果未能解决你的问题,请参考以下文章
在 Django 中,根据模型中其他字段中选择的值删除选择字段下拉列表中的选项
jQuery 用于根据下拉列表的更改值在 asp 中继器中设置背景颜色