KoXmlReader, this is bug or not

Jaime jtamate at gmail.com
Thu Aug 2 19:03:26 BST 2012


Hi all,

  I think this is again the never ending problem of spaces or not
spaces while parsing xml.
  I have not tested your programs, but KoXmlDocument probably will
behave as QDom if you pass false in the KoXmlDocument constructor.

Best Regards.

2012/8/2 Elvis Stansvik <elvstone at gmail.com>:
> 2012/8/2 Elvis Stansvik <elvstone at gmail.com>:
>> 2012/8/2 mojtaba shahi Senobari <mojtaba.shahi3000 at gmail.com>:
>>> Hi all
>>>
>>> I was working with KoXmlReader and  at a node ( just include attributes ) i
>>> try firstChild().
>>>
>>> I except an element, that should be a child of my node, but no result.
>>
>> Perhaps what you're looking for is firstChildElement() ? I think in
>> DOM, a node can by any type of node (element node, attribute node,
>> text node et.c.), and the first child node happens to be an attribute
>> node in your case.
>>
>> I think firstChildElement will give you the first child element node.
>
> I think I am wrong. At least I'm seeing a difference in behavior in
> KoXml vs. QDom here. With this input
>
> test.xml:
> <foo>
>     <bar/>
> </foo>
>
> the program
>
> #include <QDebug>
> #include <QFile>
> #include <QDomDocument>
> #include <QDomNode>
>
> int main (int, char **)
> {
>     QFile file("test.xml");
>     QDomDocument doc;
>     doc.setContent(&file);
>     switch (doc.documentElement().firstChild().nodeType()) {
>         case QDomNode::ElementNode:
>             qDebug() << "ElementNode";
>             break;
>         case QDomNode::AttributeNode:
>             qDebug() << "AttributeNode";
>             break;
>         case QDomNode::TextNode:
>             qDebug() << "TextNode";
>             break;
>         default:
>             qDebug() << "Unknown";
>             break;
>     }
>
>     return 0;
> }
>
> gives ElementNode as output, while the program
>
> #include <KoXmlReader.h>
>
> int main (int, char **)
> {
>     QFile file("test.xml");
>     KoXmlDocument doc;
>     doc.setContent(&file);
>     switch (doc.documentElement().firstChild().nodeType()) {
>         case KoXmlNode::ElementNode:
>             qDebug() << "ElementNode";
>             break;
>         case KoXmlNode::TextNode:
>             qDebug() << "TextNode";
>             break;
>         default:
>             qDebug() << "Unknown";
>             break;
>     }
>
>     return 0;
> }
>
> gives TextNode as output.
>
> Shouldn't KoXml* and QDom* be functionally equivalent?
>
> Elvis
>
>>
>> Elvis
>>
>>>
>>> I checked and  found that the result of firstChild is a KoXmlText.
>>>
>>> I think in this method (firstChild) programmer has not ignored  attributes
>>> of node.
>>>
>>> and this is for method KoXmlReader::nextSibling().
>>>
>>> Am i right and it is a bug or no, i am doing some thing wrong ?
>>>
>>> moji
>>>
>>> _______________________________________________
>>> calligra-devel mailing list
>>> calligra-devel at kde.org
>>> https://mail.kde.org/mailman/listinfo/calligra-devel
>>>
> _______________________________________________
> calligra-devel mailing list
> calligra-devel at kde.org
> https://mail.kde.org/mailman/listinfo/calligra-devel



More information about the calligra-devel mailing list