Dlang kxml getCData использование

Я использую в своем проекте такую ​​библиотеку для разбора XML:

https://github.com/opticron/kxml/blob/master/source/kxml/xml.d

Вот мой пример кода:

void main()
{
    string xmlstring = cast(string)read("test.xml");
    XmlNode newdoc = xmlstring.readDocument();
    XmlNode[]  searchlist = newdoc.parseXPath("//instancesSet/item");

    foreach(list, searchlist)
    {
    string test = list.parseXPath("//instanceId").getCData();
    writeln(test);
    }
}

И это не хочет компилировать:

$ dub
Performing "debug" build using dmd for x86_64.
kxml 1.0.0: target for configuration "library" is up to date.
test ~master: building configuration "application"...
source/app.d(23,56): Error: no property 'getCData' for type 'XmlNode[]'
dmd failed with exit code 1.

Когда я использую foreach цикл Я думал, что он принимает только одно значение из всего массива. Так что, если это массив XmlNode[] переменная, только одна из них должна быть просто XmlNode (не массив).

Почему он до сих пор видит там массив? Как пользоваться getCData() способ очистить переменную от тегов и поместить ее в string?

1 ответ

В петле, list на самом деле XmlNode, но это parseXPath() возвращается XmlNode[], Если вы хотите работать только с первым результатом запроса XPath в каждом list, просто добавь [0],

string test = list.parseXPath("//instanceId")[0].getCData();
Другие вопросы по тегам