Merhabalar ,
Çok basit bir konu olsa bile bu tecrübemi paylaşmak istedim.
std.xml'in web linkine girdiğimizde direk bir uyarı göze çarpıyor:
"Warning: This module is considered out-dated and not up to Phobos' current standards. It will remain until we have a suitable replacement, but be aware that it will not remain long term."
Kısaca Phobos'un standartlarına uymadığı ve değiştirileceği belirtiliyor. Bunu okuduğumda D'nin standartları çok yüksektir, modülde sorun yoktur diye düşünmüştüm. Fakat basit bir XML dosyasını parse etmeyi başaramadım .
Bunun üstüne bağlantıdan(http://www.digitalmars.com/d/archives/digitalmars/D/learn/XML_Parsing_33796.html) takip edilebilecek olan
arsd.dom.d modulünü projeme ekledim. Ve aşağıdaki gibi kullandım.
auto document = new Document(readText(fileName), true, true);
auto polMap = document.requireSelector("Policy");
auto policyID = polMap.id;
auto contentMap = document.requireSelector("Filter");
auto resolveIP = contentMap.redirIP;
auto redirectURL = contentMap.redirURL;
testVal = [];
foreach(testMap; document.getElementsByTagName("UnitTest"))
{
string uniqTestID = policyID ~ testMap.id;
testVal ~= Test(uniqTestID, testMap.value, cast(FilterAction)testMap.result);
}
Ne kadar çok uzatıp canınızı sıkmak istemesem de, daha rahat anlaşılabilmesi için XML dosyasının benzerini paylaşmak istiyorum.
<UnitTest id="1" value="dns://hurriyet.com.tr" result="NOT_BLOCK"/>
<UnitTest id="2" value="http://vatan.com.tr" result="NOT_BLOCK"/>
<UnitTest id="3" value="https://facebook.com" result="BLOCKED"/>
Benim gibi küçük bir proje yapıyorsanız ve performanstan daha fazla işi hızlı bitirmeye ihtiyacınız varsa arsd.dom.d modülünü tavsiye ediyorum.
Saygılarımla
Kadir Erdem Demir
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]