0

リモート XML ファイルの「release」タグの値を読み取り、その値を返そうとしています。getElementText() を使用して「release」タグの値を見つけることができますが、getElementValue() では見つけることができません

Java コード..

 try {
URL url1 = new URL("http://hsv-artifactory.emrsn.org:8081/artifactory/libs-release-local/com/avocent/commonplatform/cps/symbols/gdd/GDDResources/maven-metadata.xml");
XMLStreamReader reader1 = XMLInputFactory.newInstance().createXMLStreamReader(url1.openStream());
String Latest = null;
while (reader1.hasNext()) {
    if (reader1.next() == XMLStreamConstants.START_ELEMENT) {
        if (reader1.getLocalName().equals("release")) {
            Latest = reader1.getElementText();
            break;
        }
    }
}
System.out.println("Latest version in Artifactory is :"+Latest);
} catch (IOException ex) {
 // handle exception
Logger.getLogger(SVNRepoConnector1.class.getName()).log(Level.SEVERE, null, ex);
} catch (XMLStreamException ex) {
// handle exception
Logger.getLogger(SVNRepoConnector1.class.getName()).log(Level.SEVERE, null, ex);
} finally {
// close the stream

        }  

上記のコードでは、値は文字列変数に格納されていますが、整数変数に格納して、後で加算、減算などの操作を実行できるようにしたい..助けてください

4

1 に答える 1

0

DOM ソリューション:

URL url1 = new URL("http://hsv-artifactory.emrsn.org:8081/artifactory/libs-release-local/com/avocent/commonplatform/cps/symbols/gdd/GDDResources/maven-metadata.xml");
InputSource xmlInputSource = new InputSource(url1.openStream());
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document dom = dBuilder.parse(xmlInputSource);
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile("//release");//all release elements
NodeList nodes = (NodeList) expr.evaluate(e,XPathConstants.NODESET);
ArrayList<Integer> releaseList = new ArrayList<Integer>();
for (int i = 0; i < nodes.getLength(); i++) {
   Element releaseElem = (Element) nodes.item(i);
    releaseList.add(Integer.parseInt(releaseElem.getText()));
}

例外をキャッチするだけです。

于 2014-11-25T14:08:53.343 に答える