[ sabacc @ 10.11.2009. 07:55 ] @
Za mene je XML nešto novo, pri exportu iz moje baze dobijem xml dokument koji sadrži više hiljada redova. Pri exportu više hijerarhijskih povezanih tabela nisam mogao da se oslobodim polja ključeva koji povezuju tabele i oni se nalaze u xml dokumentu.
Moje pitanje je sledeće: Na koji način automatski izbrisati ta polja iz dokumenta? (Znam da to može ručno u notepad ili word) ili možda postoji neki drugi programi koji će obrisati navedene atribute u dokumentu recimo atribut <ID>1</ID> koji mi se javlja onoliko puta koliko ima kontakata (preko hiljadu).
Pozdrav
[ mmix @ 10.11.2009. 16:01 ] @
Ovo mozes da resis xslt transformacijom, ne znam kakava ti eje source sema pa ne mogu vise od ovog da ti kazem.
[ sabacc @ 11.11.2009. 09:20 ] @
XML dokument
Code:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xsi:noNamespaceSchemaLocation="Osiguranik.xsd" generated="2009-11-11T10:20:00" 
        xmlns:od="urn:schemas-microsoft-com:officedata" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Osiguranik>
        <ID>1</ID>
        <IDUstanove>1</IDUstanove>
        <Fil>1</Fil>
        <Isp>1</Isp>
        <Prez>1</Prez>
        <Ime>1</Ime>
        <LBO>1</LBO>
        <JMBG>1</JMBG>
        <BZK>1</BZK>
        <Nos>1</Nos>
        <VrsLec>1</VrsLec>
        <DatOd>1</DatOd>
        <DatDo>1</DatDo>
        <UputDij>1</UputDij>
        <ZavrDij>1</ZavrDij>
        <OOP>1</OOP>
        <BrKart>1</BrKart>
        <OO>1</OO>
        <PoKon>1</PoKon>
        <Drz>1</Drz>
        <VrsIspKon>1</VrsIspKon>
        <BrIspKon>1</BrIspKon>
        <NapKon>1</NapKon>
        <TipUsl>1</TipUsl>
        <Usluga>
            <ID>1</ID>
            <IDOSIGURANIKA>1</IDOSIGURANIKA>
            <DatUsl>11.11.1111</DatUsl>
            <SifUsl>1</SifUsl>
            <Kol>1</Kol>
            <JedCen>1</JedCen>
            <Ucs>1</Ucs>
            <LBOLekar>1</LBOLekar>
            <ImeLekara>1</ImeLekara>
            <PrezLekara>1</PrezLekara>
            <SifSlu>1</SifSlu>
            <EksID>1</EksID>
            <Nap>1</Nap>
        </Usluga>
        <Usluga>
            <ID>2</ID>
            <IDOSIGURANIKA>1</IDOSIGURANIKA>
            <DatUsl>1</DatUsl>
            <SifUsl>1</SifUsl>
            <Kol>1</Kol>
            <JedCen>11</JedCen>
            <Ucs>1</Ucs>
            <LBOLekar>1</LBOLekar>
            <ImeLekara>1</ImeLekara>
            <PrezLekara>1</PrezLekara>
            <SifSlu>1</SifSlu>
            <EksID>1</EksID>
            <Nap>1</Nap>
        </Usluga>
    </Osiguranik>
</dataroot>


XSD fajl
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
    <xsd:element name="dataroot">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="Osiguranik" minOccurs="0" maxOccurs="unbounded"/>
            </xsd:sequence>
            <xsd:attribute name="generated" type="xsd:dateTime"/>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="Osiguranik">
        <xsd:annotation>
            <xsd:appinfo>
                <od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no"/>
                <od:index index-name="ID" index-key="ID " primary="no" unique="no" clustered="no"/>
                <od:index index-name="IDUstanove" index-key="IDUstanove " primary="no" unique="no" clustered="no"/>
            </xsd:appinfo>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
                <xsd:element name="IDUstanove" minOccurs="0" od:jetType="longinteger" od:sqlSType="int" type="xsd:int"/>
                <xsd:element name="Fil" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="Isp" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="Prez" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="Ime" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="LBO" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="JMBG" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="BZK" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="Nos" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="VrsLec" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="DatOd" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="DatDo" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="UputDij" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="ZavrDij" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="OOP" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="BrKart" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="OO" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="PoKon" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="Drz" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="VrsIspKon" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="BrIspKon" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="NapKon" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="TipUsl" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element ref="Usluga" minOccurs="0" maxOccurs="unbounded"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="Usluga">
        <xsd:annotation>
            <xsd:appinfo>
                <od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no"/>
                <od:index index-name="ID" index-key="ID " primary="no" unique="no" clustered="no"/>
                <od:index index-name="IDOSIGURANIKA" index-key="IDOSIGURANIKA " primary="no" unique="no" clustered="no"/>
                <od:index index-name="OsiguranikUsluga" index-key="IDOSIGURANIKA " primary="no" unique="no" clustered="no"/>
            </xsd:appinfo>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
                <xsd:element name="IDOSIGURANIKA" minOccurs="0" od:jetType="longinteger" od:sqlSType="int" type="xsd:int"/>
                <xsd:element name="DatUsl" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="SifUsl" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="Kol" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="JedCen" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="Ucs" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="LBOLekar" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="ImeLekara" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="PrezLekara" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="SifSlu" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="EksID" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
                <xsd:element name="Nap" minOccurs="1" od:jetType="text" od:sqlSType="nvarchar" od:nonNullable="yes">
                    <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:maxLength value="255"/>
                        </xsd:restriction>
                    </xsd:simpleType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>


Znači kako izbrisati autmatski sve atrbute
<Usluga>
<ID>2</ID>
Znači atribut <ID>2</ID> vezanu za tag <Usluga> jer bi ručno brisanje zahtevalo mnogo vremena. Imam više stotina osiguranika za koje su vezane više usluga koje se ponavlljaju

[mod: malo sam ti sredio sors, koristi [ code ] tagove]



[Ovu poruku je menjao mmix dana 12.11.2009. u 11:46 GMT+1]
[ mmix @ 12.11.2009. 10:19 ] @
evo ga xslt:

Code:
<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/ | @* | node()">
        <xsl:if test="name(.)!='ID' or name(..)!='Usluga'">
            <xsl:copy>
                <xsl:apply-templates select="@* | node()"/>
            </xsl:copy>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
[ sabacc @ 12.11.2009. 13:25 ] @
Hvala, probaću nešto da uradim. Početnik sam u XML (za sada je ovo za mene špansko selo). Malo literature više interneta i foruma i valjda ću se snaći.