Netbeans(Java)-将XML节点存储在整数数组中
我正在为一个学校项目创建一个简单的高分页面。我需要使用xml文件来存储数据。我计划创建一个highscores页面,在游戏结束时保留您的分数,如下所示:Netbeans(Java)-将XML节点存储在整数数组中,java,xml,type-conversion,xmlnode,Java,Xml,Type Conversion,Xmlnode,我正在为一个学校项目创建一个简单的高分页面。我需要使用xml文件来存储数据。我计划创建一个highscores页面,在游戏结束时保留您的分数,如下所示: // Variable Declaration int[] highscoresArray = new int [12]; String[] usernameArray = new String [12]; // score temp and username temp variables. int sT
// Variable Declaration
int[] highscoresArray = new int [12];
String[] usernameArray = new String [12];
// score temp and username temp variables.
int sTemp;
String uTemp;
// Prevent blank username
if (nameInput.getText().length() > 2){
warnings.setText("Username may only be 2 digits!");
}
else if(nameInput.getText() != null && nameInput.getText().length() == 2) {
try {
// Gets the contents from highscores.xml & assigns each Node to an int variable;
String filePath = "highscores.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filePath);
// Read username data from xml file
for (int y = 0; y <= 9; y++){
Node uName = doc.getElementsByTagName("name").item(y);
usernameArray[y] = uName.getTextContent();
System.out.println("User " + y + ". " + usernameArray[y]);
}
usernameArray[10] = nameInput.getText();
System.out.println("User 10. " + usernameArray[10]);
// Read userscore data from xml file
for (int y = 0; y < 9; y++){
Node uScore = doc.getElementsByTagName("score").item(y);
highscoresArray[y] = Integer.parseInt(uScore.getTextContent());
System.out.println("Score " + y + ". " + highscoresArray[y]);
}
highscoresArray[10] = gameUI.bankOffer;
System.out.println("Score 10. " + highscoresArray[10]);
for (int x = 10; x >= 1; x--){
if (highscoresArray[x] > highscoresArray[x-1]) {
// score swap
sTemp = highscoresArray[x-1];
highscoresArray[x-1] = highscoresArray[x];
highscoresArray[x] = sTemp;
// username swap
uTemp = usernameArray[x-1];
usernameArray[x-1] = usernameArray[x];
usernameArray[x] = uTemp;
}
}
}catch (ParserConfigurationException pce){
pce.printStackTrace();
}catch(IOException ioe){
ioe.printStackTrace();
}catch(SAXException sae){
sae.printStackTrace();
}
} else {
warnings.setText("Invalid username");
}
//变量声明
int[]highscoresArray=新int[12];
String[]usernameArray=新字符串[12];
//score temp和username temp变量。
int sTemp;
字符串uTemp;
//防止空白用户名
if(nameInput.getText().length()>2){
warnings.setText(“用户名只能是两位数!”);
}
else if(nameInput.getText()!=null&&nameInput.getText().length()=2){
试一试{
//从highscores.xml获取内容&将每个节点分配给一个int变量;
字符串filePath=“highscores.xml”;
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docFactory.newDocumentBuilder();
Document doc=docBuilder.parse(文件路径);
//从xml文件读取用户名数据
对于(int y=0;y=1;x--){
if(highscoresArray[x]>highscoresArray[x-1]){
//分数交换
sTemp=highscoresArray[x-1];
highscoresArray[x-1]=highscoresArray[x];
highscoresArray[x]=sTemp;
//用户名交换
uTemp=usernameArray[x-1];
usernameArray[x-1]=usernameArray[x];
usernameArray[x]=uTemp;
}
}
}捕获(ParserConfiguration异常pce){
pce.printStackTrace();
}捕获(ioe异常ioe){
ioe.printStackTrace();
}捕获(SAX异常){
sae.printStackTrace();
}
}否则{
警告。setText(“无效用户名”);
}
我的程序在从xml文件读取用户分数的for循环中有问题。下面再次列出:
// Read userscore data from xml file
for (int y = 0; y < 9; y++){
Node uScore = doc.getElementsByTagName("score").item(y);
highscoresArray[y] = Integer.parseInt(uScore.getTextContent());
System.out.println("Score " + y + ". " + highscoresArray[y]);
}
//从xml文件读取userscore数据
对于(int y=0;y<9;y++){
节点uScore=doc.getElementsByTagName(“分数”)。项(y);
highscoresArray[y]=Integer.parseInt(uScore.getTextContent());
System.out.println(“分数”+y+“+highscoresArray[y]);
}
我知道它与将节点值存储为int有关,但我尝试按照以下步骤进行转换。非常感谢您的帮助