6

次の nametext を使用して StringArray を作成する必要があります。

<xs:element name="xyz" type="xs:string/>

<xs:element name="bla" type="xs:string/>

...

「xyz」、「bla」などを照会するにはどうすればよいですか?

おそらくこれまでに見た中で最悪のコードですが、とにかく:

NodeList result1 = (NodeList) xPath.evaluate("//@name", example, XPathConstants.NODESET);

for(int i=0; i<result1.getLength();i++) {
   System.out.println("read 1:" +result1.item(i));
}
//console output is:
//read 1:name="xyz"
//read 1:name="bla"

ArrayList<String> liste; 
liste = new ArrayList<String>(result1.getLength());
for (int i=0; i<result1.getLength();i++){
   String read=xPath.evaluate("//@name", example);
   liste.add(read);
   System.out.println("read 2: "+read);      
}

System.out.println("complete list: " +liste);

//console output is:
//read 2:name="xyz"
//read 2:name="xyz"
//complete list: [xyz, xyz]

助けてくれてありがとう、このように機能しました:

(念のため..誰かがここで解決策を探している場合)

NodeList result = (NodeList) xPath.evaluate("//@name", example, XPathConstants.NODESET);
liste = new ArrayList<String>(result.getLength());
for(int i=0; i<result.getLength();i++){
liste.add(result.item(i).getNodeValue());
}
return(liste);
4

2 に答える 2

0

結果のリストを正常に取得しているように見えますが、それらをループして、反復ごとに XPath を再評価します。result1 を最初にループしたときに値が正しく出力されているように見えるので、これを置き換えてみませんか。

String read=xPath.evaluate("//@name", example);

これとともに:

String read = result1.item(i).toString();
于 2013-01-16T09:57:22.720 に答える