powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вопрос по Xml
9 сообщений из 9, страница 1 из 1
Вопрос по Xml
    #36965926
gnot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброго времени суток други! дали мне задание одно. Но никак не могу разобраться, что же все таки требуется конкретно.
Вот само задание:

На файловой системе у вас располагается xml файл с произвольной информацией,
например:

Евгений Лукашин

б.Строителей, д.5

31.12.1970

Список полей заранее неизвестен, при тестировании приложения будет
использоваться совсем другой файл с другим набором полей.

Необходимо открыть этот файл, распарсить и вывести на экран форму для
редактирования атрибутов:

name: Евгений Лукашин

address: б.Строителей, д.5

birthdate: 31.12.1970

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


Тут у меня возникли вопросы... В общем говоря, что и куда сохранять?????? С xml приходилось работать не так часто, в основном для скачки оттуда нужных элементов. Может, я чего-то не понимаю, но КУДА ИМЕННО СОХРАНЯТЬ ВВЕДЕННЫЕ ДАННЫЕ?
Приведу мои соображения по заданию.

1)
Необходимо открыть этот файл, распарсить и вывести на экран форму для
редактирования атрибутов:

name: Евгений Лукашин

address: б.Строителей, д.5

birthdate: 31.12.1970

Распарсить мы его распарим. Но надо ли отображать пользователю всю его структуру?

2)
По результатам редактирования форма должна уметь сохранять введенные данные
в тот же xml файл.

В тот же файл - звучит слишком абстрактно и натянуто. Каждый XML файл имеет свою структуру, описывает свою предметную область. Тут надо уточнять структуру файла. Задать dtd или XML Schema или еще что-то , чтобы описать структуру. Как это по вашему сохранить введенные данные? В какие разделы? куда? Если просто тупенько создать элементы и кинуть их в корень-то какой смысл парсить весь документ?

Затем, при распаривании нужно сравнить загружаемый файл с шаблоном. Если файл соответствует шаблону-вывести его на редактирование и добавление информации. Если нет? Что с ним делать? Просто откинуть?
Поэтому я предложил бы создать некий шаблон –описание документа в виде xml shema. И по нему бы сравнивал открываемые документы. Если соответствует, то вносил бы данные name, address, birthdate
...
Рейтинг: 0 / 0
Вопрос по Xml
    #36965943
gnot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то есть задал бы шаблон что-то типа
......

<ElementType name="name" content="textOnly" model ="closed" />
<ElementType name="address" content="textOnly" model ="closed" />
<ElementType name="birthdate" content="textOnly" model ="closed" />

<ElementType name="contact" content="eltOnly" model ="closed" minOccurs="1" maxOccurs="*">
<element type="name" />
<element type="address" />
<element type="birthdate" />
<ElementType/>

ну или что-то в этом роде..
...
Рейтинг: 0 / 0
Вопрос по Xml
    #36965946
gnot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у кого какие предложения?
...
Рейтинг: 0 / 0
Вопрос по Xml
    #36968439
gnot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ау!!!! отзовитесь..
...
Рейтинг: 0 / 0
Вопрос по Xml
    #36969342
Andry Trushin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gnot,

совсем не понятно в чем вопрос. Двигайся по шагам, сначало рисуешь произвольный xml, который описывает все что тебе надо, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0" encoding="UTF-8"?>  
<root>
    <persons>
       <person fname="Евгений" lname="Лукашин" mname="" birthday="31.12.1970">
           <address type="Основной" index="" city="" street="б.Строителей" home="5" build="" flat="" />
       </person>
    </persons>
</root>
потом пишешь шаблон по его обработке:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:template match="/">
        <xsl:apply-templates select="/root/persons/person" />
    </xsl:template>
    <xsl:template match="person">
        <xsl:text>name: </xsl:text>
        <xsl:value-of select="@fname" />
        <xsl:if test="@mname != ''">
            <xsl:text> </xsl:text>
            <xsl:value-of select="@mname" />
        </xsl:if>
        <xsl:text> </xsl:text>
        <xsl:value-of select="@lname" />
        <BR />
        <xsl:apply-templates select="address" />
        <BR />
        <xsl:text>birthdate: </xsl:text>
        <xsl:value-of select="@birthday" />
        <BR />
        <BR />
    </xsl:template>
    <xsl:template match="address">
        <xsl:text>address: </xsl:text>
        <xsl:if test="@index != ''">
            <xsl:value-of select="@index" />
            <xsl:text>, </xsl:text>
        </xsl:if>
        <xsl:if test="@city != ''">
            <xsl:text>г. </xsl:text>
            <xsl:value-of select="@city" />
            <xsl:text>, </xsl:text>
        </xsl:if>
        <xsl:if test="@street != ''">
            <xsl:value-of select="@street" />
            <xsl:text>, </xsl:text>
        </xsl:if>
        <xsl:if test="@home != ''">
            <xsl:text>д. </xsl:text>
            <xsl:value-of select="@home" />
            <xsl:if test="@build != ''">
                <xsl:text>/</xsl:text>
                <xsl:value-of select="@build" />
            </xsl:if>
        </xsl:if>
        <xsl:if test="@flat != ''">
            <xsl:text>, кв. </xsl:text>
            <xsl:value-of select="@flat" />
        </xsl:if>
        <BR />
    </xsl:template>
</xsl:stylesheet>
если придуманная тобой структура удовлетворяет задаче, можешь делать xsd, но это уже не ко мне, я такй фигней не занимаюсь.
...
Рейтинг: 0 / 0
Вопрос по Xml
    #36970024
gnot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо) я так и думал)
а xsd почему фигня?)))))
...
Рейтинг: 0 / 0
Вопрос по Xml
    #36970320
Andry Trushin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gnot,

у меня нет области применения xsd, и самое противное, что я не могу придумать для чего он нужен, всегда есть бумажка, приходишь к программисту и договариваешься о словаре, в котором софт будет отдавать xml.
можно гнуть пальцы, считать меня деревенщиной, но xsd не помогает, только увеличивает код и вводит народ в тупняк.

Может тут найдутся фанаты, которые выскажут свое мнение и убедят хотя бы вас, что xsd придумали не зря.
...
Рейтинг: 0 / 0
Вопрос по Xml
    #36970827
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andry Trushinу меня нет области применения xsd, и самое противное, что я не могу придумать для чего он нужен, всегда есть бумажка, приходишь к программисту и договариваешься о словаре, в котором софт будет отдавать xml.Например, банальный контроль ошибок
...
Рейтинг: 0 / 0
Вопрос по Xml
    #36972997
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

синтаксические контролировать бред и с той и с другой стороны программа.
логические? у меня нет столько времени, чтобы так писать xsd, проще крикнуть через два стола, подкрепив свое мнение крепким словцом.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вопрос по Xml
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]