Nano Hash - криптовалюты, майнинг, программирование

XSLT 1. Как заменить «&» на «» в файле XML?

Мне нужно найти решение для исправления с помощью XSLT 1! Большинство присылаемых XML-файлов хорошо отформатированы и кто-то портит, добавляя символы (& ‹ > . . .). Любой способ заменить это на моей стороне? Я попробовал XSLT 2, и функция замены не работает, так как я использую процессор XSLT от Microsoft.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:saxon="http://saxon.sf.net/"
  exclude-result-prefixes="xs saxon"
  version="2.0">
<xsl:param name="path" select="'file:///E:/foo.xml'"></xsl:param>
<xsl:template match="/">
<xsl:copy-of select="unparsed-text($path)"></xsl:copy-of>
<xsl:copy-of select="saxon:parse(replace(unparsed-text($path), '&amp;',      '&amp;amp;'))"/>
</xsl:template>
</xsl:stylesheet>

Любое другое предложение, как решить эту проблему. например, у меня есть входной файл XML, например:

  <?xml version="1.0" encoding="UTF-8"?>
  <name>Stack & Exchange</name>

И сбой на символе '&'.

Пожалуйста посоветуй! Спасибо

07.02.2017

  • Что в нем не работает? 07.02.2017
  • Функцию replace() можно заменить рекурсивным именованным шаблоном. Но если ваш ввод не XML, вы вообще не сможете преобразовать его с помощью процессора XSLT 1.0. В XSLT 1.0 нет unparsed-text(). 07.02.2017
  • Входной xml недействителен, кто бы ни передал его вам, не может утверждать, что доставил xml - исправьте это. 08.02.2017
  • Стефан, я знаю, что это НЕДЕЙСТВИТЕЛЬНО! Это мое решение, как проверить и исправить неправильно отформатированные XML-файлы... В полученных XML-файлах, подобных этому, замените '&' на 08.02.2017
  • @Darius XSLT 1.0 не может этого сделать; поищите другой инструмент (например, текстовый редактор). 08.02.2017
  • @ Майкл, ты говоришь о ручной проверке. Любое другое предложение для автоматического поиска? 08.02.2017
  • Нет, я говорю о том, что вы можете автоматизировать. Не знаю, что можно использовать, уж точно не в Windows. 08.02.2017

Ответы:


1

Вывод

Два наблюдения

  • XSLT требует, по крайней мере, правильно сформированного XML-документа на входе, поэтому я не могу использовать его для исправления недопустимого XML (это язык преобразования XML).
  • чтобы использовать замену или экранирование недопустимых символов XML при вводе, мне нужно убедиться, что я использую процессор XSLT 2.0 (я использую процессор Microsoft XSLT 1.0)

я вижу два варианта

  • Если я получаю сообщение об ошибке при вводе, изучите и проверьте вручную и отправьте обратно сообщение об ошибке. - ЭТО Я СТАРАЛАСЬ ИЗБЕЖАТЬ! (Используйте текстовые инструменты, такие как notepad++, excel, чтобы найти проблему).
  • написать корректирующий парсер на языке .net для исправления перед загрузкой в ​​виде XML
08.02.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..