Я пытаюсь выяснить, как использовать несколько шаблонов на основе атрибутов на более низких уровнях документа XML. Пример:
<World>
<Country value="USA">
<State value="KY">
<City value="Hebron"/>
<City value="Lexington"/>
<City value="Owensboro"/>
<City value="Jonesville"/>
</State>
<State value="OH">
<City value="Cincinnati"/>
<City value="Columbus"/>
<City value="Cleveland"/>
<City value="Jonesville"/>
</State>
<State value="IN">
<City value="Indianapolis"/>
</State>
</Country>
</World>
<World>
<Country value="Russia">
<State value="Estonia">
<City value="Tallinn"/>
<City value="Dorpat"/>
<City value="Owensboro"/>
</State>
<State value="Ukraine">
<City value="Kiev"/>
<City value="Sevastopol"/>
<City value="Slavutych"/>
<City value="Jonesville"/>
</State>
</Country>
</World>
Я собираюсь получить экземпляры документов XML, поскольку это будет либо Страна = США, либо Россия, но я не буду знать, какие именно. Я хочу применить один XSLT, который позволит использовать любую страну и в результате скопировать разные города.
если в США, например, вывод будет выглядеть так:
<World>
<Country value="USA">
<State value="KY">
<City value="Hebron" />
</State>
<State value="OH">
<City value="Cincinnati" />
<City value="Jonesville" />
</State>
</Country>
</World>
если это Россия:
<World>
<Country value="Russia">
<State value="Estonia">
<City value="Dorpat" />
<City value="Owensboro" />
</State>
<State value="Ukraine">
<City value="Keiv" />
<City value="Sevastopol" />
<City value="Slavutych" />
</State>
</Country>
</World>
Также обратите внимание, что можно хотеть город в одном штате, но не в другом (т.е. ОН против КИ, Джонсвилль).
Я могу заставить работать одну страну, но я не понимаю, как заставить шаблоны соответствовать различным атрибутам. Есть идеи?