Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Простой xml-документ, но я не справляюсь...
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Обработка XML
Glebasik
Добрый день!

Простите, пожалуйста, что так вот спрашиваю, но просто больше не у кого...((
Мне кажется, что именно здесь собираются "умы" в области программирования и ответить на вопрос, помочь мне вам не составит труда. Я был бы очень признателен!

Дело в том, что у меня есть задание (в универе) - сделать xml-документ, в котором будут отображаться данные о 8 разных магазинах.

Структура такова:
1. Предприятия торговли
1.1. Магазин (атрибут - код ЕГРПОУ)
1.1.1. Наименование магазина
1.1.1.2. Адрес магазина
1.1.1.3. Товары (их сказано сделать немного, всего 2 вида). У каждого товара должно быть:
- наименование;
- цена;
1.1.2.Товарооборот
1.1.3.Прибыль

Мне нужно сделать, чтобы было 3 файла:
1. Сам xml-документ;
2. Внешний dtd-файл;
3. Стиль css, подключаемый в xml-документ.

Я это все сделал. Выглядит так:

1. XML-документ:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE enterprises SYSTEM "DTDfile.dtd" >
<enterprises>
<enterprise number="20033533">
<name> Магазин "Легенда"</name>
<adress> г.Донецк, ул. Генераторная, 4</adress>
<goods><product1><pname1>Хлеб белый</pname1>
<price1> 3.00грн.</price1></product1>
<product2><pname2>Молоко "Добрыня"</pname2>
<price2> 5.00грн.</price2></product2></goods>
<commodity turnover> 150грн.</commodity turnover>
<profit> 50грн.</profit>
</enterprise>
<enterprise number="12546987">
<name> Магазин "Продукты"</name>
<adress> г.Донецк, ул. Щетинина, 12</adress>
<goods><product1><pname1>Хлеб черный</pname1>
<price1> 2.50грн.</price1></product1>
<product2><pname2>Минеральная вода</pname2>
<price2> 4.00грн.</price2></product2></goods>
<commodity turnover>100грн.</commodity turnover>
<profit> 30грн.</profit>
</enterprise>
<enterprise number="12795428">
<name> Магазин "ШиК"</name>
<adress> г.Донецк, ул. Владычанского, 10</adress>
<goods><product1><pname1>Батон</pname1>
<price1>3.50грн.</price1></product1>
<product2><pname2>Квас "Тарас"</pname2>
<price2>12.00грн.</price2></product2></goods>
<commodity turnover>80грн.</commodity turnover>
<profit>40грн.</profit>
</enterprise>
<enterprise number="75963458">
<name> Магазин "Поруч"</name>
<adress> г.Донецк, ул. 50-летия СССР, 10</adress>
<goods><product1><pname1>Сыр "Шостка"</pname1>
<price1>55.00грн.</price1></product1>
<product2><pname2>Пиво "Рогань"</pname2>
<price2>7.50грн.</price2></product2></goods>
<commodity turnover>170грн.</commodity turnover>
<profit>60грн.</profit>
</enterprise>
<enterprise number="45678523">
<name> Магазин "Пчёлка"</name>
<adress> г.Донецк, ул. Багратиона, 25</adress>
<goods><product1><pname1>Сникерс "super"</pname1>
<price1>6.50грн.</price1></product1>
<product2><pname2>Напиток "Coca-Cola"</pname2>
<price2>10.50грн.</price2></product2></goods>
<commodity turnover>100грн.</commodity turnover>
<profit>50грн.</profit>
</enterprise>
<enterprise number="45789632">
<name> Магазин "Красный"</name>
<adress> г.Донецк, ул. Скочинского, 14</adress>
<goods><product1><pname1>Колбаса докторская</pname1>
<price1>30.50грн.</price1></product1>
<product2><pname2>Квас "Данило"</pname2>
<price2>11.00грн.</price2></product2></goods>
<commodity turnover>180грн.</commodity turnover>
<profit>80грн.</profit>
</enterprise>
<enterprise number="89632587">
<name> Магазин "Копеечка"</name>
<adress> г.Донецк, ул. Вековая, 21</adress>
<goods><product1><pname1>Жвачка "Orbit"</pname1>
<price1>5.50грн.</price1></product1>
<product2><pname2>Зубная паста "Aquafresh"</pname2>
<price2>12.00грн.</price2></product2></goods>
<commodity turnover>80грн.</commodity turnover>
<profit>30грн.</profit>
</enterprise>
<enterprise number="12795428">
<name> Магазин "Белый"</name>
<adress> г.Донецк, ул. Абрикосовая, 24</adress>
<goods><product1><pname1>Пончики</pname1>
<price1>1.50грн.</price1></product1>
<product2><pname2>Пицца "Belissimo"</pname2>
<price2>29.00грн.</price2></product2></goods>
<commodity turnover>120грн.</commodity turnover>
<profit>60грн.</profit>
</enterprise>
</enterprises>



2. DTD файл:

<!ELEMENT enterprises (enterprise+)>
<!ELEMENT enterprise (name, adress, goods, commodity turnover, profit)>
<!ATTLIST enterprise number CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT adress (#PCDATA)>
<!ELEMENT goods (product1,product2)>
<!ELEMENT product1 (pname1,price1)>
<!ELEMENT product2 (pname2,price2)>
<!ELEMENT commodity turnover (#PCDATA)>
<!ELEMENT profit (#PCDATA)>



3. CSS - стиль:

name {display: inline; font-style: italic; font-size: 20pt; font-weight: bold; color:black;}
adress {display: block; color:purple; font-size: 18pt;}
goods {display block; colorblue; font-size 18pt;}
commodity turnover {display: block; color:red; font-size: 18pt;}
profit {display: block; color:green; font-size: 18pt;}



И вот ничего у меня таким образом не работает... Помогите пожалуйста, скажите - где ошибка? Или, может, помогите подправить? Я уже все пересмотрел. Не могу понять где я ошибся(((

Спасибо заранее!
С уважением, Глеб.
slav


для начала у вас не правельный xml

<commodity turnover> 150грн.</commodity turnover>

turnover - если это атрибут, то нужно указать значение

</commodity turnover> - тег должен просто такрыватся. Т.е. </commodity>



<commodity turnover> 150грн.</commodity turnover>

если это название тега, то должно быть без пробела

т.е. как-то так
<commodity_turnover> 150грн.</commodity_turnover>
Glebasik
slav, исправил - все заработало.

Единственное что, товар1 и товар 2, а также их цены не выделены. Т.е. css на них не влияет...
Понимаю, что в 3-й строчке надо как-то поменять (где goods), но как?

name {display: inline; font-style: italic; font-size: 20pt; font-weight: bold; color:black;}
adress {display: block; color:purple; font-size: 18pt;}
goods {display block; colorblue; font-size 18pt;}
commodity turnover {display: block; color:red; font-size: 18pt;}
profit {display: block; color:green; font-size: 18pt;}


Вот:
Glebasik
Картинка не загрузилась, вот:
slav
не уверен, но может попробуйте сделать по html-ному :)

      <product1>
            <pname1 class="pname">Хлеб белый</pname1>
            <price1 class="price"> 3.00грн.</price1>
        </product1>
        <product2>
            <pname2  class="pname">Молоко "Добрыня"</pname2>
            <price2 class="price"> 5.00грн.</price2>
        </product2>



name {display: inline; font-style: italic; font-size: 20pt; font-weight: bold; color:black;}
adress {display: block; color:purple; font-size: 18pt;}
commodity turnover {display: block; color:red; font-size: 18pt;}
profit {display: block; color:green; font-size: 18pt;}
.pname{display block; color:blue; font-size 18pt;}
.price{display block; color:blue; font-size 18pt;}



Iron Bug
опечатки:
goods {display:block; colorblue; font-size:18pt;} // нет двоеточий
commodity_turnover {display: block; color:red; font-size: 18pt;} // нет пробела (если это один тег, иначе будет два отдельных класса).
Glebasik
И правда! Все из-за опечаток:) Не увидел - СПАСИБО ОГРОМНОЕ!!!

Последний вопрос - а нельзя ли сделать как-то, чтобы между магазинами хотя бы 1 пустая строчка была, а то как-то все слитно...
...в HTML - это <br>, а тут как?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.