随机字符串,在克隆 node.Java

Random String, in cloned node.Java

这是我克隆 XML 个节点的代码。

int numberOfNewOffers = Integer.parseInt(oProps.getProperty("prop2","3"));
Node offers = doc.getDocumentElement().getElementsByTagName("OF_DATA").item(0);
Node offer = null;
for (int i = 0; i < offers.getChildNodes().getLength(); ++i) {
  if (offers.getChildNodes().item(i).getNodeName() == "OFX") {
    offer = offers.getChildNodes().item(i);
  }
}
if (offer != null) {
  for (int i = 0; i < numberOfNewOffers; ++i) {
    Node newOffer = offer.cloneNode(true);
    offers.appendChild(newOffer);
  }
}

这些是我克隆的节点:

<OF_DATA>
  <OFX>
    <ID>AVI</ID>
    <ON>6</ON>
    <END>11001</END>
    <NAME>Ed</NAME>
  </OFX>
  <OFX>
    <ID>AVI</ID>
    <ON>6</ON>
    <END>11001</END>
    <NAME>Ed</NAME>
  </OFX>
  <OFX>
    <ID>AVI</ID>
    <ON>6</ON>
    <END>11001</END>
    <NAME>Ed</NAME>
  </OFX>
</OF_DATA>

如何才能使每个克隆中的 <ID> 元素始终不同?我被告知使用随机。

如果你只有一个 thread,你可以这样使用:int nextId; 克隆时,使用 yourNodeId=nextId++; 并且你可以将 nextId 值保存到磁盘或从磁盘恢复,如果您希望即使在程序重新启动后 id 也是唯一的。

如果您有多个线程:尝试使用上面的建议,但使用 lock。或者给每个线程一个region(比如thread1给定0-100000,thread2给定100000-200000),然后按上面的方法做。