У меня есть следующий код, написанный на Java:
public class XMLParser {
public static void main(String arg[]) throws Exception {
String message = "<add>\n" +
" <doc>\n" +
" ......................
" <field name=\"imageWidth\" update=\"set\">400</field><field name=\"imageHeight\" update=\"set\">400</field>\n" +
" <field name=\"internalImageUrl\" update=\"set\">https://google.com</field>\n" +
" </doc>\n" +
"</add>";
String s = getUrlValue(message);
System.out.println(s);
}
private static String getUrlValue(String message) throws ParserConfigurationException, IOException, SAXException, XPathExpressionException {
String urlValue = null;
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(message));
Document doc = db.parse(is);
NodeList nodes = doc.getElementsByTagName("doc");
for (int i = 0; i < nodes.getLength(); i++) {
Element element = (Element) nodes.item(i);
NodeList name = element.getElementsByTagName("field");
Element line = (Element) name.item(23);
urlValue = line.getTextContent();
}
return urlValue;
}
}
Как мне получить значение этого атрибута:
field name=\"internalImageUrl\" update=\"set\">https://google.com</field>
Мне нужно получитьссылка -> "https://google.com"
с использованием "internalImageUrl"
параметра
В моем решении я использовал:
Element line = (Element) name.item(23);
, но мне нужно использовать цикл для всех элементов с именем "field"
и найти только "internalImageUrl"