Dynamics AX 3.0 'da XML Dosya Okuma

“Dynamics AX ’da XML dosya oluşturma” makalemizin devamı yada ters işlemi niteliğinde olan bu yazımızda aşağadaki örnek XML belgesini okumaya çalışacağız.







Kullanacağımız nesneleri tekrar hatırlayacak olursak.

XmlDocument: Bir XML belgesinden veri okumak, değiştirmek, verilerin konumlarını bulmak için kullandığımız nesnedir.
XmlNode: XML belgesinde bulunan düğümleri temsil eder.
XmlAttribute :XML belgesinde bulunan bir düğüme ait nitelik bilgilerini temsil eder.
XMLNodeList :XML belgesinde bulunan element e ait değerlerin listesini verir.
XMLNamedNodeMap:XML belgesinde düğüme ait kesişim kümesini verir. Genel kullanımı Attribute tipi düğümlerde nitelik değerlerini verir.

static void Read_XMLExample (Args _args)

{

str filename, nodeName,txtFile,strTxtRow;
str AttName;
int i,j,k;
boolean Valid;

---> XML nesneleri tanımlanıyor.
XMLDocument XMLdoc;
XMLNode rootNode, bodyNode,bodyNode1;
XmlAttribute AttNode;
XMLNodeList bodyLines,childLine;
XMLNodeList _xmlNodelist;
XMLNamedNodeMap attrs;
//<---

;

//--->XML belgesi kullanıcı sistemine yükleniyor
XMLdoc=new XMLDocument();
XMLdoc.load("C:\\XMLExample.xml");
//<---

// 1. düğüm nesnesi.
rootNode = xmldoc.documentElement();
// 1.düğüm nesnesinin ismi.
nodeName = rootNode.baseName();


// 1. düğüm nesnesinin alt düğüm'leri var mı?
if(rootNode.hasChildNodes())
{
// eğer 1. düğüm nesnesinin alt düğümleri varsa
bodyLines = rootNode.childNodes();
// ---> 1.düğüm boyunca dönüyoruz - başlangıç
for(i = 0; i<>
{
// 2. düğüm nesnesi.
bodyNode = bodyLines.nextNode();
// 2.düğüm nesnesinin ismi.
strTxtRow = bodyNode.baseName();
// 2. düğüm nesnesinin alt düğüm'leri var mı ?

if(bodyNode.hasChildNodes())
{
childLine = bodyNode.childNodes();
// ---> 2.düğüm boyunca dönülür-başlangıç
for(j= 0; j
{
//2.düğüm nesnesinin alt düğümünü.
bodyNode1 = childLine.item(j);
//alt düğümün ismi
nodeName = bodyNode1.baseName();
strTxtRow += ': '+ nodeName;
// alt düğüm bir attribute nesnesi mi ?
// eğer bir attribute nesnesi ise değerler bir map içine alınır.
attrs=bodyNode1.attributes();
if (attrs.length()>0)
{
// attribute map'i üzerinde dönüyoruz.
for(k= 0;k<>

{
// alt düğüm ismi ve düğüm değeri.
strTxtRow +=': ' + attrs.item(k).baseName() +'-'+ attrs.item(k).text();

}
}
else
{
_xmlNodelist = bodyNode.selectNodes(nodeName);
// 2.düğüm listesi boyunca dönüyoruz.

for(k= 0;k<>

{

// alt düğüm ismi ve düğüm değeri alınıyor.
strTxtRow += ': ' + _xmlNodelist.item(k).text();
}

//bodyNode.selectSingleNode(nodeName).text();
}

}//<---2.düğüm boyunca dönüyoruz-bitiş
}

}//<--- 1.düğüm boyunca dönüyoruz-bitiş

// yazdır.
print (strTxtRow);
pause;

}

Hiç yorum yok: