剛剛得到了一個關於Java中的return語句的問題,以及使用應該從xml語句中深處返回值的方法。無法到達退貨聲明?
public static String searchNode(Node node, Node parent, String nodeResult) {
String nodeValue = "";
if (node.hasChildNodes()) {
NodeList childrens = node.getChildNodes();
for (int i = 0; i < childrens.getLength(); i++) {
searchNode(childrens.item(i), node, nodeResult);
}
} else {
nodeValue = node.getNodeValue().trim();
if (nodeValue.length() > 0) {
if (parent.getNodeName().equals(nodeResult)) {
System.out.println("YESSA: " + nodeValue);
return "2: " + nodeValue;
}
}
}
return nodeValue;
}
這裏是我的問題:爲什麼返回「2」 - 陳述從來沒有達到?或者讓我反問:爲什麼nodeValue最後仍然是空的?我已經測試過了,代碼打印出這個「System.out.println」東西,但從來沒有到達那裏的回報?! 如果我想讓nodeValue填充「else」語句中的值,那麼需要更改哪些內容?
編輯:
好吧,我嘗試了你什麼建議但不幸的是我從來沒有得到我想要有結果。 進一步說明:
我有一個XML的結構是這樣的:
<?xml version="1.0" encoding="UTF-8" ?>
<log>
<published>2014-03-28T15:28:36.646Z</published>
<actor>
<objectType>person</objectType>
<id>e1b8948f-321e-78ca-d883-80500aae71b5</id>
<displayName>anonymized</displayName>
</actor>
<verb>update</verb>
<object>
<objectType>concept</objectType>
<id>a1ad6ace-c722-ffa9-f58e-b4169acdb4e3</id>
<content>time</content>
</object>
<target>
<objectType>conceptMap</objectType>
<id>4b8f69e3-2914-3a1a-454e-f4c157734bd1</id>
<displayName>my first concept map</displayName>
</target>
<generator>
<objectType>application</objectType>
<url>http://www.golabz.eu/content/go-lab-concept-mapper</url>
<id>c9933ad6-dd4a-6f71-ce84-fb1676ea3aac</id>
<displayName>ut.tools.conceptmapper</displayName>
</generator>
<provider>
<objectType>ils</objectType>
<url>http://graasp.epfl.ch/metawidget/1/b387b6f</url>
<id>10548c30-72bd-0bb3-33d1-9c748266de45</id>
<displayName>unnamed ils</displayName>
</provider>
</log>
我做的方法調用,我告訴你在下面:
searchNode(document.getFirstChild(), null, "id")
然後,我想將子節點<id>
的id-value從<actor>
保存到一個變量中(之後該方法應該以類似於break;
的方式終止,因爲我不想獲取所有的ID,只需要這個單一的ID。
if'System.out。println(「YESSA:」+ nodeValue);'然後執行'return'2:「+ nodeValue;'也被執行... – assylias 2014-10-29 14:47:31
情況並非如此。 'System.out.println'被執行,但唯一被執行的返回是最後一個不包含'return 2:「+ nodeValue'的函數,最後這個方法返回一個空的值: -/ – 2014-10-29 14:50:49
你從未在'if'情況下使用'searchNode'的返回值... – l4mpi 2014-10-29 14:52:07