Вопрос

<!DOCTYPE inventory [
<!ELEMENT book (title,author)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ATTLIST book year CDATA #IMPLIED>
<!ATTLIST book myId ID #REQUIRED>
<!ATTLIST book myIdRef IDREF #IMPLIED>
]>
<inventory>
    <book year="2000" myId="1">
        <title>Snow Crash</title>
        <author>Neal Stephenson</author>
    </book>
    <book myId="3" myIdRef="1"/>
</inventory>

Есть ли у JDom возможность делать что-то вроде:

Element root = doc.getRootElement();
List children = root.getChildren();
for(Object node:children){
  Element book = (Element) node;
  System.out.println(book.getAttributeValue("year")); 
}

/*
  So print:
    2000 
    2000
*/

Или любой другой объект, связанный с ID и IDREF??

Это было полезно?

Решение

Здесь Я нашел кое-что, чтобы ответить на ваш вопрос.Насколько я понимаю, у jDom нет прямой поддержки, но есть org.jdom.contrib.ids пакет, который

Обеспечивает поддержку документов, позволяющих искать элементы, используя значение атрибута их идентификатора

Я нашел библиотеку здесь (это не основное местоположение, возможно, кто-то еще знает URL-адрес репозитория этой библиотеки)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top