いくつかのif/elseステートメントを含むコードがあります。ただし、「else」ケースがスローされると、後続のすべてのステートメントも「else」になります。これがコードです、助けていただければ幸いです!
public List<Integer> htmlHelper(String arg) throws IOException,
XPatherException, ParserConfigurationException,
XPathExpressionException {
CleanerProperties props = new CleanerProperties();
props.setTranslateSpecialEntities(true);
props.setTransResCharsToNCR(true);
props.setOmitComments(true);
HtmlCleaner cleaner = new HtmlCleaner(props);
rootNode = cleaner.clean(arg);
TagNode tagNode = new HtmlCleaner(props).clean(new URL(
"http://www.athletics.psu.edu/psustrength/index_rec.asp"));
org.w3c.dom.Document doc = (org.w3c.dom.Document) new DomSerializer(
new CleanerProperties()).createDOM(tagNode);
XPath jpath = XPathFactory.newInstance().newXPath();
String recinfo = (String) jpath
.evaluate(
"/html/body/div/div[1]/div/div/table/tbody/tr[3]/td[2]/p[2]/text()",
doc, XPathConstants.STRING);
String recnum = recinfo.replaceAll("\\D+", "");
if (recnum != null && recnum.length() == 0) {
recnumint = 500;
grec = 0;
} else {
recnumint = Integer.parseInt(recnum);
grec = recnumint;
}
XPath ipath = XPathFactory.newInstance().newXPath();
String iminfo = (String) ipath
.evaluate(
"/html/body/div/div[3]/div/div/table/tbody/tr[2]/td[2]/p[2]/text()",
doc, XPathConstants.STRING);
String imnum = iminfo.replaceAll("\\D+", "");
if (imnum != null && recnum.length() == 0) {
imint = 400;
gim = 0;
} else {
imint = Integer.parseInt(imnum);
gim = imint;
}
XPath xpath = XPathFactory.newInstance().newXPath();
String whiteinfo = (String) xpath
.evaluate(
"/html/body/div/div[3]/div/div/table/tbody/tr[1]/td[2]/p[2]/text()",
doc, XPathConstants.STRING);
String whitenum = whiteinfo.replaceAll("\\D+", "");
if (whitenum != null && recnum.length() == 0) {
whitenumint = 450;
gwhite = 0;
} else {
whitenumint = Integer.parseInt(whitenum);
gwhite = whitenumint;
}
XPath fpath = XPathFactory.newInstance().newXPath();
String fitinfo = (String) fpath
.evaluate(
"/html/body/div/div[3]/div/div/table/tbody/tr[4]/td[2]/p[2]/text()",
doc, XPathConstants.STRING);
String fitnum = fitinfo.replaceAll("\\D+", "");
if (fitnum != null && recnum.length() == 0) {
fitint = 470;
gfit = 0;
} else {
fitint = Integer.parseInt(fitnum);
gfit = fitint;
}
List<Integer> list = new ArrayList<Integer>();
list.add(recnumint);
list.add(whitenumint);
list.add(imint);
list.add(fitint);
return list;
}
}
前述のように、この問題は最初の「else」ステートメントがスローされたときに発生します。最初のケースが「if」で、2番目の「else」の場合、3番目と4番目も「else」になります