根据列表中的值更改 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 中继器中设置背景颜色

根据下拉列表中的选定值显示表单字段Angular TypeScript

Csharp:根据组合框中的值加载选中的项目列表

Vuejs 根据从下拉列表中选择的值显示其他输入字段