При написании XML лучше написать его вручную или использовать генератор, такой как simpleXML в PHP? - PullRequest
5 голосов
/ 26 сентября 2008

Я обычно пишу от руки xml так:

<tag><?= $value ?></tag>

Найдя такие инструменты, как simpleXML, я должен использовать их вместо этого? В чем преимущество использования такого инструмента?

Ответы [ 10 ]

10 голосов
/ 26 сентября 2008

Хорошие инструменты XML гарантируют, что полученный XML-файл будет правильно проверен на соответствие DTD, которое вы используете.

Хорошие инструменты XML также экономят кучу повторяющихся наборов тегов.

5 голосов
/ 26 сентября 2008

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

3 голосов
/ 26 сентября 2008

Вы можете использовать расширение DOM , которое может быть довольно громоздким для кодирования. Мое личное мнение таково, что наиболее эффективным способом написания XML-документов с нуля является расширение XMLWriter , которое поставляется с PHP и включено по умолчанию в последних версиях.

$w=new XMLWriter();
$w->openMemory();
$w->startDocument('1.0','UTF-8');
$w->startElement("root");
    $w->writeAttribute("ah", "OK");
    $w->text('Wow, it works!');
$w->endElement();
echo htmlentities($w->outputMemory(true));
2 голосов
/ 27 сентября 2008

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

В XML не так много крайних случаев, но их достаточно, чтобы написать собственный код для их обработки - пустая трата времени. (И если вы не обработаете их, ваш код однажды неожиданно потерпит неудачу. Никто не хочет этого.) Любой хороший инструмент XML автоматически обработает эти случаи.

2 голосов
/ 26 сентября 2008

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

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

  2. еще лучше, сделайте шаг назад и напишите XML как структуру данных на любом языке, который вы предпочитаете, чем конвертируйте эту структуру данных в XML. Perl предоставляет вам такие модули, как облегченный XML :: Simple для небольших работ или более полезный XML :: Generator ; использование XML::Simple - это всего лишь вопрос организации вашего контента в стандартный хеш-код Perl и запуска его соответствующим способом.

-Стив

1 голос
/ 26 декабря 2008

Скорость может быть проблемой ... рукописный может быть намного быстрее.

1 голос
/ 26 сентября 2008

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

1 голос
/ 26 сентября 2008

Используйте генератор.

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

0 голосов
/ 01 октября 2008

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

0 голосов
/ 26 сентября 2008

Всегда используйте какой-нибудь инструмент. XML может быть очень сложным, я знаю, что ребята из PHP привыкли работать с мелочами, но это огромный запах кода в мире .NET, если кто-то не использует System.XML для создания XML.

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