-1
JavaとXMLに問題があります。 新規ユーザーをファイルusers.xmlに保存する登録フォームがあり、同じユーザー名を持つ別のユーザーが存在する場合は、現在のユーザーを保存する前にチェックします。Java XMLでノードが存在するかどうかを調べる
これは私のXMLです:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<user id="1">
<username>John</username>
<password>mypassword</password>
</user>
そして、これは私のコードです:
public class isUserExisting {
public static boolean checkIfExists(String username) {
try {
File inputFile = new File("src/users.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("user");
System.out.println("----------------------------");
for (int temp = nList.getLength() - 1; temp >= 0 ; temp--) {
Node nNode = nList.item(temp);
System.out.println();
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
String tempUser = eElement.getElementsByTagName("username").item(0).getTextContent();
if(tempUser == username) {
return true;
}
else {
return false;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
しかし、毎回私が使用:
if(isUserExisting.checkIfExists(username)) {
System.out.println("This username exists");
}
私は、次のエラーが表示さ:
を[Fatal Error] users.xml:6:2: The markup of the document that follow the element must have a correct format.
org.xml.sax.SAXParseException; systemId: file:/eclipse/workspace/Folder/src/users.xml; lineNumber: 6; columnNumber: 2; The markup of the document that follow the element must have a correct format.
何が問題なのですか?事前に感謝:)
で
を交換してくださいXMLでは、複数のユーザーがいる場合は、外部要素が必要です。 – Andreas
エラーとは関係ありませんが、[Javaの文字列を比較するにはどうすればいいですか?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – Andreas
そのチェックのための単一のXPath式? –