XPathを使用してXML文字列を解析しようとしていますが、null値のみが返されています。誰かが私が下に示すコードで間違っているかもしれない考えを持っていますか?XPathを使用してXML文字列データを解析する際の問題
public static void main(String[] args) {
String content = "<imagesXML><Images><Image><ImageUID Scope='Public' Type='Guid' Value='{7f2535d0-9a41-4997-9694-0a4de569e6d9}'/><CorbisID Scope='Public' Type='String' Value='42-15534232'/><Title Scope='Public' Type='String' Value='Animal'/><CreditLine Scope='Public' Type='String' Value='© Robert Llewellyn/Corbis'/><IsRoyaltyFree Scope='Public' Type='Boolean' Value='False'/><AspectRatio Scope='Public' Type='String' Value='1.500000'/><URL128 Scope='Public' Type='String' Value='http://cachens.corbis.com/CorbisImage/thumb/15/53/42/15534232/42-15534232.jpg'/></Image></Images></imagesXML>";
InputSource source = new InputSource(new StringReader(content));
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList list = null;
try {
list = (NodeList) xPath.evaluate("//URL128[@Value]", source,
XPathConstants.NODESET);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
for (int i = 0; i < list.getLength(); i++) {
System.out.println(list.item(i));
}
}
のSystem.outからの出力は 'の値が= [URL128:ヌル]' ですが、それは私が抽出しようとしているURLでなければなりません:http://cachens.corbis.com/CorbisImage/thumb/15/53/42/15534232/42-15534232.jpg
。
ご協力いただきありがとうございます。
ありがとうございました。 Value = "http://cachens.corbis.com/CorbisImage/thumb/15/53/42/15534232/42-15534232.jpg" XPath評価を使用してValue = partを削除する方法はありますか? – c12
ahhh、それにSystem.out.println(list.item(i).getTextContent()); – c12
@ c12:確かに、文字列の本体で表現されないことがわかっているなら、 'String#replace'または' String#replaceAll'を使って行うことができます。 - 決して気にしないで、あなたの方法はより良いです! –