С звуко буквенный разбор слова: Поиск слов по словарю фонетических разборов

sql — ошибка синтаксического анализа XML: «ожидался строковый литерал» при вставке значений в таблицу

спросил

Изменено 9 лет, 11 месяцев назад

Просмотрено 27 тысяч раз

В Microsoft SQL Server 2008 я пытаюсь вставить значения в таблицу sql со столбцами type_id типа данных int и xml_info типа данных XML . Я использую следующий запрос:

 INSERT INTO tbl_applied_devices ([type_id], [xml_info])
ЗНАЧЕНИЯ (1, 'BC4A18CA-AFB5-4268-BDA9-C990DAFE7783 localhost< /Профиль>')
 

Но я продолжаю получать эту ошибку:

Сообщение 9413, уровень 16, состояние 1, строка 4
Разбор XML: строка 1, символ 13, ожидался строковый литерал

Что я делаю неправильно?

РЕДАКТИРОВАТЬ: Я обнаружил, что источником ошибки является атрибут ID элемента xml, , похоже, является причиной ошибки. Как я могу правильно вставить xml с атрибутом? Мне нужно как-то сбежать от одного из персонажей?

  • sql
  • xml
  • sql-server-2008
  • tsql
  • вставка

XML-документы являются текстовыми ual по своей природе. Это не HTML для веб-страницы, поэтому вам нужны ВСЕ значения атрибутов в кавычках (одинарные или двойные).

 ВСТАВИТЬ В tbl_applied_devices ([type_id],[xml_info])
ЗНАЧЕНИЯ (1, 'BC4A18CA-AFB5-4268-BDA9-C990DAFE7783 localhost ')
 

Очень сложно разобрать спецификации XML 1.0, но вот версия Microsoft для .Net 4.5, которая так же актуальна для SQL Server XML.

1

Атрибуты, ID является атрибутом, должен быть заключен в кавычки. Попробуйте

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Разбор предложений с помощью комбинатора парсеров Scala

Задавать вопрос

спросил

Изменено 8 лет, 9 месяцев назад

Просмотрено 2к раз

Я только начал играть с комбинаторами синтаксических анализаторов в Scala, но застрял на синтаксическом анализаторе для разбора таких предложений, как «Мне нравится Scala». (_.mkString(«»)) определение предложения: Parser[List[String]] = rep(word) <~ "." } объект Test расширяет приложение { val result = Example.parseAll(Example.sentence, «Мне нравится Scala.») println(результат) }

Идея использования guard() заключается в том, чтобы точка разграничивала окончания слов, но не использовала ее, чтобы это могли делать предложения. Однако синтаксический анализатор застревает (добавление

log() показывает, что он неоднократно пытается синтаксический анализатор слов и символов ).

Если я изменю определения слов и предложений следующим образом, предложение будет разобрано, но описание грамматики будет выглядеть неправильно и не будет работать, если я попытаюсь добавить синтаксический анализатор для абзаца ( 9(_.mkString(«»)) определение предложения: Parser[List[String]] = rep(word) <~ opt(".")

Есть идеи, что здесь происходит?

  • scala
  • парсеры-комбинаторы

Однако синтаксический анализатор зависает (добавление log() показывает, что он повторно пытается использовать синтаксический анализатор слов и символов).

Комбинатор rep соответствует * в нотации регулярных выражений в стиле Perl. Это означает, что он соответствует нулю или более символов. Я думаю, вы хотите, чтобы это соответствовало один или более символов. Изменение этого на rep1 (соответствующее + в нотации регулярных выражений в стиле perl) должно решить проблему.

Однако ваше определение все еще кажется мне несколько многословным. Почему вы анализируете отдельные символы, а не просто используете \w+ в качестве шаблона для слова? Вот как я бы это написал:

 пример объекта extends RegexParsers {
  переопределить определение skipWhitespace = false
  слово определения: Parser[String] = """\w+""".r
  определение предложения: Parser[List[String]] = rep1sep(word, whiteSpace) <~ "."
}
 

Обратите внимание, что я использую rep1sep для разбора непустого списка слов, разделенных пробелами.

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *