Как я могу исключить элементы с XSI: Nil = «True» из преобразования?

StackOverflow https://stackoverflow.com/questions/2179374

  •  24-09-2019
  •  | 
  •  

Вопрос

У меня есть несколько файлов XML, которые недавно изменились, так что некоторые узлы теперь имеют атрибут XSI: Nil = «True». У меня есть лист стиля XSLT, который отображает XML в HTML для некоторых быстрых глазных станций данных. В настоящее время для того, чтобы сделать все легче на себе, я выделяю пространства имен из XML, прежде чем применить стиль листа. Это работало нормально до нашего последнего обновления. Теперь я получаю ошибку, потому что XSL не знает, как обрабатывать XSL: Nil = «True».

Я могу легко обновить код, поэтому я делаю замену / удаление во всех совпадениях XSL: Nil = «True» в XML, прежде чем я преобразую его, но мне было интересно, можно ли сложить лист стиля XSLT, чтобы XSI: Ниль будет игнорироваться / не привести к ошибкам преобразования, даже если в XML не включаются никакие пространства имен. Я бы предпочел делать такие вещи таким образом, потому что я могу сделать изменения на сервере сейчас, где, если я должен выдать новую веб-сборку, я должен перейти через некоторые внутренние обручи, чтобы его развернули.

После того, как я получаю работу (либо через снятие XSL: Nil's до или во время преобразования) Я обратно и выясни, почему я изначально удалил имен и исправить это.

Спасибо за любую помощь, вы можете дать мне.

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

Решение

Почему вы удалили пространства имен в первую очередь? XSLT позволяет контролировать, какие префиксы не должны быть введены в выходные данные, и вы можете пропустить тех xsi:nil Хорошо в стиле.

Если нет декларации Prefix пространства имен для xsi Префикс, XML недействителен. Таким образом, вы имеете дело с недействительным XML или у вас все еще есть некоторое декларация пространства XSI где-нибудь, и вы можете изменить XSLT, чтобы пропустить эти записи.

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

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