JAXP. Как получить ключ по значению keyref

#java #xml #xml-parsing #jaxp

#java #xml #синтаксический анализ xml #jaxp

Вопрос:

У меня есть XML-файл, подобный этому:

 <Student CourseTitle="Course1"/>

<Course CourseTitle="Course1" Duration="10"/>
  

Где CourseTitle в теге Course является ключевым. Названием курса в Student является keyref. Как я могу проанализировать этот XML-документ и получить студенческий курс со всеми атрибутами в теге Course? Используя JAXP? Спасибо и извините за мой плохой английский.

Комментарии:

1. JAXP предоставляет широкий спектр возможностей, включая синтаксический анализ SAX и DOM, обработку XPath, XSLT и XML-схемы. Поэтому неясно, какую технологию вы на самом деле хотите использовать. Однако ни один из них напрямую не позволяет вам использовать определенные XSD ограничения key / keyref для поддержки запроса.

Ответ №1:

В XSLT определите ключ

 <xsl:key name="course-key" match="Course" use="CourseTitle"/>
  

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

 select="key('course-key', @CourseTitle)