2009-12-27 2 views
1

Правильно ли это, чтобы сохранить адрес в XML-файле? Если это так, как бы я эхо в трех строках, как адрес должен быть написан с использованием PHP. Если нет, то какой правильный путь? (Файл не является полным Я заинтересован только в адресе..)Правильный синтаксис XML

<store name="Pizza R Us" Store_address="16 Main St Anytown, US 00000"> 
<items> 
<pizzas> 
    <topping> 
    <name>Tomato and Cheese</name> 
    <price> 
    <small>$6.85</small> 
    <large>$10.85</large> 
    </price> 
    </topping> 
</pizzas> 
</items> 
</store> 

ответ

1

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

Для получения более подробной информации прочитайте следующую страницу. Особенно разделы «Мой любимый путь» и «Избегайте атрибутов XML»?

http://www.w3schools.com/xml/xml_attributes.asp

2

Это не совсем хорошо сформированный XML: у вас есть место в «адрес магазина» имя атрибута.

Данные XML, как правило, очень структурированы, поэтому, к примеру, кажется немного странным иметь знаки доллара в ценах. Кроме того, адрес является отдельной строкой, а не разделен на компоненты. Конечно, зависит от вас, как вы хотите структурировать свои данные, и это зависит от вашего приложения.

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

0

Подходит ли цена к начинкам или ко всей пицце? Если это относится ко всей пицце, почему она встроена в верхнюю часть?

0

Нет, это не очень хорошо формируется XML - имена атрибутов, не может иметь места в них, так:

Store address="16 Main St Anytown, US 00000" 

должно быть:

StoreAddress="16 Main St Anytown, US 00000" 
0

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

Вы можете положить символы новой строки в значения атрибутов. Но чтобы избежать attribute value normalisation процесса сдавливания их к пространствам, они должны были спаслись:

<store name="Pizza R Us" Store_address="16 Main St&#10;Anytown, US&#10;00000"> 

Использования надлежащего XML serialiser будет делать это автоматически. Если вы шаблонирования непосредственно в XML, к сожалению, не является htmlspecialchars флаг, чтобы сделать этот вид побега, так что вы должны сказать:

<store 
    name="<?php echo htmlspecialchars($name); ?>" 
    Store_address="<?php echo str_replace("\n", "&#10;", htmlspecialchars($address)); ?>" 
> 

Вы можете предпочесть использовать содержимое элемента вместо значений атрибутов для хранения например:

<store> 
    <name><?php echo htmlspecialchars($name); ?></name> 
    <address><?php echo htmlspecialchars($address); ?></address> 
    <items> 
     ... 
    </items> 
</store> 

Поскольку символы новой строки в содержании элементов сохранены.

Смежные вопросы