我目前正在尝试制定命名惯例。这背后的想法是解析。 让我们说我获得了一个xml doc。一切都可以使用一次,但下面的代码中的这2个可以在xml文档中多次提交。它可以是1,或简称为100。 这表明将抓取第一个元素的ItemNumber和ReceiptType。
ItemNumber1 = eElement.getElementsByTagName("ItemNumber").item(0).getTextContent();
ReceiptType1 = eElement.getElementsByTagName("ReceiptType").item(0).getTextContent();
这个说明,如果他们两次提交,它将获得第二次提交。
ItemNumber2 = eElement.getElementsByTagName("ItemNumber").item(1).getTextContent();
ReceiptType2 = eElement.getElementsByTagName("ReceiptType").item(1).getTextContent();
ItemNumber和ReceiptType必须一起提交。因此,如果有30个ItemNumbers,则必须有30个Receipt Types。
但是现在我想在IF语句中设置它来创建变量。 我正在思考以下几点:
int cnt = 2;
if (eElement.getElementsByTagName("ItemNumber").item(cnt).getTextContent();)
**MAKE VARIABLE**
然后创建一个循环,添加一个计数以查看它们是第三个还是第四个。现在这里有棘手的部分..我需要将它们设置为生成的变量。示例如果ItemNumber 2存在,则将其设置为
String ItemNumber2 = eElement.getElementsByTagName("ItemNumber").item(cnt).getTextContent();
我不希望制作预先制作的变量名,因为我不想编写可能的1000个变量,如果1000个变量发生的话。
KUDOS适用于任何可以提供帮助的人,或者在命名约定等方面提供有关此部分内容的提示。谢谢!
答案 0 :(得分:0)
您事先不知道您将获得多少ItemNumbers和ReceiptTypes?也许考虑使用两个列表(java.util.List
)。这是一个例子。
boolean finished = ... ; // true if there is no more item to process
List<String> listItemNumbers = new ArrayList<>();
List<String> listReceiptTypes = new ArrayList<>();
int cnt = 0;
while(!finished) {
String itemNumber = eElement.getElementsByTagName("ItemNumber").item(cnt).getTextContent();
String receiptType = eElement.getElementsByTagName("ReceiptType").item(cnt).getTextContent();
listItemNumbers.add(itemNumber);
listReceiptTypes.add(receiptType);
++cnt;
// update 'finished' (to test if there are remaining itemNumbers to process)
}
// use them :
int indexYouNeed = 32; // for example
String itemNumber = listItemNumbers.get(indexYouNeed); // index start from 0
String receiptType = listReceiptTypes.get(indexYouNeed);