Я анализирую определения из словаря api. У меня есть эта строка xmlСложность разбора вложенных тегов xml java
<dt>:any of a small genus (<it>Apteryx</it>) of flightless New Zealand birds with rudimentary wings, stout legs, a long bill, and grayish brown hairlike plumage</dt>
Как получить полную строку элемента dt. Моя проблема в том, что он не работает, когда он встает на эту часть (Apteryx), потому что в элементе есть дополнительные теги. Как бы получить весь элемент dt как одну целую строку. Вот мой текущий код.
Element def = (Element) element.getElementsByTagName("def").item(0);
System.out.println(getValue("dt",def).replaceAll("[^\\p{L}\\p{N} ]", ""));
Где def - элемент, содержащий элемент dt.
А вот мой ПолучитьЗначение код
private static String getValue(String tag, Element element)
{
NodeList nodes = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = (Node) nodes.item(0);
return node.getNodeValue();
}
Иногда имеется несколько вложенных тегов в пределах дта элемента
Почему вы используете ваш "* ПолучитьЗначение *" метод, вы не можете использовать ** def.getElementsByTagName ("дт") **, чтобы получить весь элемент «* dt *»? – Pragmateek
нет, потому что возвращает список узлов – Popgalop
def.getElementsByTagName ("dt"). Item (0)? – Pragmateek