HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Az IXMLNode interfész


IXMLNode 1. rész

Példaprogram letöltése

61554 bájt

Az IXMLNode egy olyan interfész, amelyen keresztül egy XML dokumentum csomópontjait kezelhetjük. Az IXMLNode interfész hasonló az IDOMNode interfészhez, ami a Document Object Model (DOM) specifikáció része. Mindemellett az IXMLNode interfész leegyszerűsíti a csomópontok szerkesztését, és a csomópontok közötti navigációt. Több property-t és metódust tartalmaz az IDOMElement interfészből, amelyek leegyszerűsítik egy XML csomópont vizsgálatát, valamint elősegítik az XML struktúrákban tárolt adatokhoz való hozzáférést.

AttributeNodes
Osztály: IXMLNode
property AttributeNodes: IXMLNodeList;
Az aktuális csomópont attribútumait tartalmazó csomópontok IXMLNodeList típusú objektumát adja vissza.
<employee firstname=”Janet” lastname=”Baldwin” age=28>
A fenti példában az „employee” csomópont három attribútuma a „firstname”, „lastname” és az „age”. Ha csak az attribútumok értékeire vagyunk kíváncsiak, akkor használhatjuk az Attributes property-t is. Ha viszont szükségünk van az attribútumok számára, neveire, esetleg törölni, vagy hozzáadni akarunk attribútumokat, akkor az AttributeNodes property-t kell használnunk.
Csak az elem csomópontoknak lehetnek attribútumai, de nem minden elem csomópontnak vannak. Ha nincsenek attribútumok, akkor az AttributeNodes property-ben egy üres listát kapunk.
A csomópont attribútumai nem érhetők el a ChildNodes property-n keresztül, mivel azok nem gyermek csomópontok.
Attributes
Osztály: IXMLNode
property Attributes[const AttrName: DOMString]: OleVariant;
Ha tudjuk a csomópont attribútumának nevét, akkor az értékét ezzel a property-vel kérdezhetjük le. A property tömb típusú, indexként az attribútum nevét kell megadni.
ChildNodes
Osztály: IXMLNode
property ChildNodes: IXMLNodeList;
Ebből a property-ből gyermek csomópontok listáját kapjuk meg egy IXMLNodeList típusú objektumban.
ChildValues
Osztály: IXMLNode
property ChildValues[const IndexOrName: OleVariant]: OleVariant; default;
Az IndexOrName index által meghatározott gyermek elem értékét adja vissza a property. Az IndexOrName index lehet a gyermek csomópont objektuma, vagy a neve. Ha nem található olyan gyermek csomópont, amely az IndexOrName index-nek megfelel, akkor kivétel keletkezik. A visszaadott érték az elem típusától függ:
Érték Típus
ntElement ha az elem csak szöveget tartalmaz, akkor az eredmény a szöveg lesz, ellenkező esetben az első gyermek csomópont értéke.
ntText a csomópont által tartalmazott szöveg.
ntCData CDATA szekció tartalma.
ntProcessingInstr a feldolgozási instrukciók tartalma.
ntComment a csomópont értéke (szöveg).
Collection
Osztály: IXMLNode
property Collection: IXMLNodeCollection;
Ebben a property-ben az azonos típusú, és ugyanazon szülő csomóponthoz tartozó csomópontokat kapjuk meg egy IXMLNodeCollection típusú objektumban. A könnyebb érthetőség kedvéért nézzünk erre egy példát:
<reszleg>
  <dolgozo>
    <nev>Kovács József</nev>
  </dolgozo>
  <dolgozo>
    <nev>Nagy Aranka</nev>
  </dolgozo> 
  <vezeto>
    <nev>Horváth Alajos</nev>
  </vezeto>
</reszleg>
Legyen az aktuális csomópont az első <dolgozo> elem. Ekkor a szülő csomópont (ParentNode) a <reszleg> elem, és a Collection property azokat a csomópontokat fogja tartalmazni, amelyek szülő csomópontja a <reszleg> elem, és a csomópont típusa <dolgozo>, és a <vezeto> csomópont nem fog szerepelni ebben az objektumban.
DOMNode
Osztály: IXMLNode
property DOMNode: IDOMNode;
Ez a property hozzáférést biztosít a csomópont IDOMNode típusú objektumához, amin keresztül elérhetjük az alacsonyabb szintű property-ket és metódusokat. Az alkalmazások többsége nem használja ki ezt a lehetőséget, helyette az IXMLNode interfészt használja.
HasChildNodes
Osztály: IXMLNode
property HasChildNodes: Boolean;
A property értéke igaz, ha a csomópontnak vannak gyermek csomópontjai, és hamis, ha nincsenek. Az attribútumok, és a szöveges tartalom nem számít csomópontnak.
IsTextElement
Osztály: IXMLNode
property IsTextElement: Boolean;
A property értéke igaz, ha a csomópont csak egy egyszerű szöveges adatot tartalmaz, pl.:
<nev>Kovács József</nev>
LocalName
Osztály: IXMLNode
property LocalName: DOMString;
A csomópont nevét adja vissza ez a property. Csak az ntElement és ntAttribute típusú csomópontoknak van neve. A név nem fogja tartalmazni a névtér előtagot. Ha a property nincs definiálva, akkor használjuk helyette a NodeName property-t. Ha a név előtt nincs megadva a névtér előtag, akkor a két property értéke megegyezik.
NamespaceURI
Osztály: IXMLNode
property NamespaceURI: DOMString;
A property visszaadja a csomópont névterének Universal Resource Identifier (URI) azonosítóját. Csak abban az esetben adja ezt vissza, ha a csomópont nevénél ez meg van adva. Alapértelmezés szerint az IXMLNode interfész az URI-t nem teszi hozzá a csomópont nevéhez.
NodeName
Osztály: IXMLNode
property NodeName: DOMString;
A csomópont nevét adja vissza ez a property. Ha a névtér is meg van adva a név előtt, akkor a property értéke azt is tartalmazni fogja. A visszaadott név függ a csomópont típusától is:
Típus Név
ntAttribute az attribútum neve
ntElement az elem neve
ntText ‘#text’
ntCData ‘#cdata-section’
ntEntityRef az egyedhivatkozás neve
ntEntity az egyed neve
ntProcessingInstr a feldolgozási instrukció célja
ntComment ‘#comment’
ntDocument ‘#document’
ntDocType a dokumentumtípus neve
ntDocFragment ‘#document-fragment’
ntNotation a jelölésrendszer neve
NodeType
Osztály: IXMLNode
property NodeType: TNodeType;
A csomópont típusát adja vissza ez a property. Értékei az alábbiak lehetnek:
Érték Jelentés
ntReserved nem használt
ntElement A csomópont egy olyan egyszerű elem, amely gyermek csomópontokat tartalmaz. A gyermek elemek típusai a következők lehetnek: ntElement, ntText, ntCData, ntEntityRef, ntProcessingInstr, és ntComment. A csomópontnak lehetnek attribútumai is (ntAttribute). A csomópont a következő típusú csomópontoknak lehet a gyermek eleme: ntDocument, ntDocFragment, ntEntityRef, és ntElement.
ntAttribute A csomópont egy elem attribútumát tartalmazza. Ez nem gyermeke egy másik csomópontnak, az értéke az Attributes property-vel kérdezhető le. Az ilyen típusú csomópontoknak lehet gyermek eleme az ntText vagy ntEntityRef típusú csomópont.
ntText Egyszerű szöveg, ami nem tartalmazhat gyermek elemeket, viszont az a következő csomópont típusoknak lehet a gyermek csomópontja: ntAttribute, ntDocFragment, ntElement, vagy ntEntityRef.
ntCData A csomópont egy CDATA szakaszt reprezentál az XML forráskódban, és tagolt, formázott szöveget tartalmazhat. Nem lehet gyermek eleme, viszont a következő típusoknak lehet gyermeke: ntDocFragment, ntEntityRef, vagy ntElement.
ntEntityRef A csomópont többféle hivatkozást tartalmazhat egy másik egyedre
A következő típusok lehetnek a gyermekei: ntElement, ntProcessingInstr, ntComment, ntText, ntCData, és ntEntityRef. A következő típusoknak lehet gyermeke: ntAttribute, ntDocFragment, ntElement, vagy ntEntityRef.
ntEntity A csomópont egy kiterjesztett egyed elemet reprezentál. Gyermekei szintén kiterjesztett egyedek lehetnek, például ntText vagy ntEntityRef csomópontok. Csak az ntDocType típusú csomópontnak lehet a gyermeke.
ntProcessingInstr A csomópont egy feldolgozási instrukciót tartalmaz (PI – Processing Instruction). Ennek az elemnek nem lehetnek gyermek elemei, viszont gyermeke lehet az ntDocument, ntDocFragment, ntElement, vagy ntEntityRef típusú elemeknek.
ntComment A csomópont egy megjegyzést tartalmaz az XML dokumentumban. Nem lehetnek gyermek elemei, viszont a következő elemeknek lehet a gyermeke: ntDocument, ntDocFragment, ntElement, és ntEntityRef.
ntDocument A csomópont a dokumentum gyökér eleme. Egyetlen ntElement típusú gyermek eleme lehet (DocumentElement). Ezen kívül az alábbi elemek lehetnek még a gyermek elemei: ntProcessingInstr, ntComment, és ntDocType. Mivel ez a gyökér elem, így ennek nem lehet szülő eleme.
ntDocType A csomópont a dokumentum típusát adja meg (<!DOCTYPE > elem). Lehet gyermek eleme az ntNotation és ntEntity típusú csomópont. Mindig a DocumentElemet gyermek eleme.
ntDocFragment Egy egyszerű csomópont vagy csoport, amelyet a dokumentum ténylegesen nem tartalmaz. Gyermek elemei lehetnek a ntElement, ntProcessingInstr, ntComment, ntText, ntCData, és ntEntityRef csomópontok. Soha nincs szülő eleme.
ntNotation A csomópont egy jelölésrendszert határoz meg a dokumentum típus deklarációban. Mindig az ntDocType csomópont gyermek eleme, és nem lehetnek gyermek elemei.
NodeValue
Osztály: IXMLNode
property NodeValue: OleVariant;
A csomópont értékét adja vissza, illetve ezen keresztül adhatjuk meg az új értéket. Az érték típusa a csomópont típusától függ (lásd. ChildValues property).
OwnerDocument
Osztály: IXMLNode
property OwnerDocument: IXMLDocument;
Visszaadja az XML dokumentum IXMLDocument interfészének objektumát.
ParentNode
Osztály: IXMLNode
property ParentNode: IXMLNode;
A szülő csomópont IXMLNode objektumát adja vissza.
Prefix
Osztály: IXMLNode
property Prefix: DOMString;
A csomópont nevének névtér előtagját adja vissza a property. A névtér előtag a névtér URI szimbolikus neve:
<xsi:Name First=Janet Last=Baldwin>
A fenti példában a csomópont neve „Name”, míg a névtér előtag az „xsi”. Névtér előtag külön megadható az attribútumoknak is, viszont ha nem adjuk meg, akkor nem fogja örökölni a csomópont névterét.
<xsi:Name xsn:First=Janet Last=Baldwin>
A fenti példában két attribútum van: az első a „First”, a második pedig a „Last”. Az első attribútum névtér előtagja „xsn”, a másodiké pedig egy üres sztring.
ReadOnly
Osztály: IXMLNode
property ReadOnly: Boolean;
Ha a property értéke igaz, akkor a csomópont adatai nem szerkeszthetők. Ha az értéke hamis, akkor a csomópont módosítható.
Text
Osztály: IXMLNode
property Text: DOMString;
A csomópont szövegét adja vissza ez a property, illetve ezen keresztül adható meg. Ha a csomópont a következőképpen néz ki:
<name> Janet Baldwin </name>
akkor a text property értéke „Janet Baldwin”.
Ha a csomópontnak vannak gyermek csomópontjai, akkor a property használata kivételt okoz.
XML
Osztály: IXMLNode
property XML: DOMString;
A csomópont tartalmát adja vissza ez a property XML formátumban. Az XML gyökere az aktuális csomópont lesz.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 357. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |