none
xml как избежать дублирование данных. RRS feed

  • Вопрос

  • Помогите разобраться какие типы данных лучше использовать.
    к примеру у меня есть исходные данные очень похожие на xml

    <toy_brands>Vtech Fisher Price ELC</toy_brands>
    <toy_words>Головоломка, Игровая, Развивающая, Конструктор</toy_words>
    <wheelchair_brands>Brevi Bright Starts Inglesina</wheelchair_brands>
    <child_clothes>ползунки боди</child_clothes>

    К сожалению на момент создания этого счастья я не знал об xml и для этого написал собственный парсер.
    В принципе я думаю ничего сложно местами подправить данные подогнать все под xml и избавится от велосипеда.
    И пользоваться xml без изобретения всяких там парсеров.

    Но мне нужно создавать некие наборы элементов из элементарных
    к примеру
    <toy></toy>  которые будут равны <toy_brands> + <toy_words>
    <child></child> которые будет равен <toy_brands> + <toy_words> + <wheelchair_brands> + <child_clothes>

    Позволяет ли такое XML
    И если позволяет то как это делается?
    ну чтобы избежать дублирование данных.
    14 апреля 2020 г. 11:16

Ответы

  • $xml = [xml]'
    <db>
        <objects>
            <object name="toy">
                <parameter name="toy_brands"/>
                <parameter name="toy_words"/>
            </object>
            <object name="child">
                <parameter name="toy_brands"/>
                <parameter name="toy_words"/>
                <parameter name="child_clothes"/>
            </object>
        </objects>
    
        <data>
            <table name="toy_brands">
                <item value="Dovgonosyk"/>
                <item value="Burationo"/>
                <item value="Pinokio"/>
            </table>
            <table name="toy_words">
                <item value="a"/>
                <item value="b"/>
                <item value="c"/>
            </table>
            <table name="child_clothes">
                <item value="soks"/>
                <item value="t-short"/>
            </table>
        </data>
    </db>
    '
    $xml.db.SelectNodes("objects").object | foreach {
        $parameters = $($_.parameter.name)
        Write-Host "$($_.name) group contains references to: $parameters"
        Foreach ($parameter in $parameters) {
            Write-Host "Values for group '$Parameter' is :"
            ($xml.db.SelectNodes('data').table | Where {$_.Name -eq $Parameter}).Item.Value
        } 
    }
    

    Равно как и с базами: создаете структуру зависимостей и таблицы с информацией по типам


    The opinion expressed by me is not an official position of Microsoft


    15 апреля 2020 г. 7:26
    Модератор

Все ответы

  • $xml = [xml]'
    <db>
        <objects>
            <object name="toy">
                <parameter name="toy_brands"/>
                <parameter name="toy_words"/>
            </object>
            <object name="child">
                <parameter name="toy_brands"/>
                <parameter name="toy_words"/>
                <parameter name="child_clothes"/>
            </object>
        </objects>
    
        <data>
            <table name="toy_brands">
                <item value="Dovgonosyk"/>
                <item value="Burationo"/>
                <item value="Pinokio"/>
            </table>
            <table name="toy_words">
                <item value="a"/>
                <item value="b"/>
                <item value="c"/>
            </table>
            <table name="child_clothes">
                <item value="soks"/>
                <item value="t-short"/>
            </table>
        </data>
    </db>
    '
    $xml.db.SelectNodes("objects").object | foreach {
        $parameters = $($_.parameter.name)
        Write-Host "$($_.name) group contains references to: $parameters"
        Foreach ($parameter in $parameters) {
            Write-Host "Values for group '$Parameter' is :"
            ($xml.db.SelectNodes('data').table | Where {$_.Name -eq $Parameter}).Item.Value
        } 
    }
    

    Равно как и с базами: создаете структуру зависимостей и таблицы с информацией по типам


    The opinion expressed by me is not an official position of Microsoft


    15 апреля 2020 г. 7:26
    Модератор
  • Добрый день, получилось что-то?

    The opinion expressed by me is not an official position of Microsoft

    16 апреля 2020 г. 8:09
    Модератор