XML-данные из API имеют несколько неопределенных пространств имен - как использовать xslt для отображения в html? - PullRequest
0 голосов
/ 07 мая 2018

Я использую API REST для получения данных XML из базы данных и пытаюсь отобразить их в формате html с помощью xslt. К сожалению, данные XML возвращаются с несколькими пространствами имен, которые не определены. Я могу заставить таблицу стилей работать нормально на локальной копии данных, если я уберу пространства имен или определю их. Чередование пространств имен выглядит как хак, и нет правильного способа сделать это.

По сути, это пример данных, которые я получаю:

<root>
<entity:Entity ns1:atrib="foo">
    <g:Value>foo1</g:value>
    <g:Name>fooName</g:Name>
</entity:Entity>

Методы xmlhttprequest в JS, чтобы получить эту информацию, и XSLTProcessor, чтобы преобразовать ее, а затем добавить ее в. Он не отображает преобразованную информацию, и я на 100% уверен, что именно пространства имен вызывают проблему.

Я погуглил все, что могу придумать, не повезло. Подобные дорожные преграды почти всегда происходят из-за того, что я упускаю что-то фундаментальное.

1 Ответ

0 голосов
/ 07 мая 2018

XSLT будет работать только с правильно сформированным XML, и для него необходимо объявить все пространства имен. Если вы хотите обработать эти данные, вы должны в идеале исправить их в источнике; если вы не можете этого сделать, вам нужно отремонтировать его перед обработкой.

Существуют некоторые синтаксические анализаторы XML, которые позволяют обрабатывать XML без учета пространства имен, и вы можете использовать такой синтаксический анализатор в качестве основы вашего инструмента восстановления, но это настолько необычное требование, что мне придется оставить вас исследовать, как сделать это самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...