// 设置为已探索 public void setVisited(String name, String tag) { if (tag.equals(Tags.MAP)) { ParseConfigNodes config = new ParseConfigNodes(); Node target = config.getParser().getFirstTagNode(config.getNodeList(), tag); while (target != null) { if (target.getAttributes().getNamedItem(Tags.VALUE).getTextContent().equals(name) && !parser.getTagAttribute(target, Tags.VISITED).equals(Tags.visited)) { target.getAttributes().getNamedItem(Tags.VISITED).setTextContent(Tags.visited); config.getParser().refreshXml(); break; } target = config.getParser().getNextTagNode(target); } } else { Node target = parser.getFirstTagNode(list, tag); while (target != null) { if (target.getTextContent().equals(name) && !parser.getTagAttribute(target, Tags.VISITED).equals(Tags.visited)) { parser.setTagAttribute(name, tag, Tags.VISITED, Tags.visited); break; } target = parser.getNextTagNode(target); } } }
// 判断是否探索过该物品或人或地图 public boolean isVisited(String name, String tag) { if (tag.equals(Tags.ITEM) || tag.equals(Tags.PERSON)) { Node target = parser.getFirstTagNode(list, tag); while (target != null) { if (target.getTextContent().equals(name) && parser.getTagAttribute(target, Tags.VISITED).equals(Tags.visited)) { return true; } target = parser.getNextTagNode(target); } } else { ParseConfigNodes config = new ParseConfigNodes(); Node target = config.getParser().getFirstTagNode(config.getNodeList(), tag); while (target != null) { if (config.getParser().getTagAttribute(target, Tags.VALUE).equals(name) && config.getParser().getTagAttribute(target, Tags.VISITED).equals(Tags.visited)) { return true; } target = config.getParser().getNextTagNode(target); } } return false; }