1

我有一个属性,比如telephonenumber,它在一个人身上出现了好几次。现在我想用新数字列表替换所有数字:

<person>  
<telephonnumber>12345</telephonnumber>  
<telephonnumber>23456</telephonnumber>  
</person>  

替换为:

<person>  
<telephonnumber>56789</telephonnumber>  
<telephonnumber>78901</telephonnumber>  
</person>  

我怎样才能在 Java 中做到这一点?

使用

mods.add(new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("telephonnumber", "56789")));  
mods.add(new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("telephonnumber", "78901")));  

最终所有值将被最后一个 ModificationItem 替换。好吧,我可以通过删除所有数字并从列表中添加所有新值来解决问题。但我认为 Java LDAP 直接支持它。

4

1 回答 1

4

您想使用多值电话属性创建单个替换。请参阅Oracle LDAP 属性教程

// Create a multivalued attribute that has four String values
BasicAttribute oc = new BasicAttribute("objectClass", "top");
oc.add("person");
oc.add("organizationalPerson");
oc.add("inetOrgPerson");

提示:在开始编码之前,首先通过LDIF文件尝试 LDAP 操作。

于 2013-01-18T13:56:21.047 回答