有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

xml随机字符串,在克隆节点中。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>元素始终不同?我被告知要用随机的


共 (1) 个答案

  1. # 1 楼答案

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

    如果您有多个线程:尝试使用上面的建议,但使用lock。或者为每个线程指定一个区域(例如,thread1指定为0-100000,thread2指定为100000-200000),然后执行上述操作