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

时间:2015-03-13 03:36:08

标签: java xml parsexml

这是我克隆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>元素始终不同?我被告知要随机使用。

1 个答案:

答案 0 :(得分:0)

如果您只有一个thread,则可以在克隆时使用int nextId;,使用yourNodeId=nextId++;如果您愿意,可以在磁盘上保存和恢复nextId值即使在程序重启后,id也是唯一的。

如果你有多线程:尝试使用上面的建议,但使用lock。或者给每个线程一个区域(例如,thread1给出0-100000,thread2给出100000-200000),然后按上述方式执行。