Как я могу выполнить XML и DTD? - PullRequest
0 голосов
/ 04 октября 2019

Я работаю над тем, чтобы понять больше о DTD и XML, и я столкнулся с проблемой. На самом деле, я понял синтаксис DTD и XML, но я работаю над кодом Visual Studio и не смог выполнить код.

Как я могу выполнить код de, чтобы увидеть только текст, например: С кодом на картинке Здесь , я хотел бы получить:

Tove Jani Reminder Не забудьте меня в эти выходные!

Однако я не нашел способов выполнить этот код. Спасибо за помощь !

1 Ответ

0 голосов
/ 04 октября 2019

Вы можете использовать такой инструмент, как xmlstarlet, для проверки XML по DTD.
Вот пример из справки xmlstarlet:

Usage: xmlstarlet val <options> [ <xml-file-or-uri> ... ]
where <options>
  -w or --well-formed        - validate well-formedness only (default)
  -d or --dtd <dtd-file>     - validate against DTD
  --net                      - allow network access
  -s or --xsd <xsd-file>     - validate against XSD schema
  -E or --embed              - validate using embedded DTD
...

В вашем случае соответствующая команда может выглядеть следующим образом:

xmlstarlet val -d note.dtd note.xml

Чтобы получить строковое значение

Напоминание Tove Jani Не забывайте меня в эти выходные!

вы должны использоватьXPath. Выражение XPath-1.0 в вашем случае может быть:

normalize-space(/note)

Затем передайте это выражение XPath-1.0, например, xmlstarlet, например

xmlstarlet sel -t -v 'normalize-space(/note)' note.xml

, чтобы получить желаемый результат.
Конечно, вы можете использовать другие инструменты;xmlstarlet был просто примером.

...