随机字符串,在克隆 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),然后按上面的方法做。
这是我克隆 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),然后按上面的方法做。