xrces item returning NULL

xrces item returning NULL

本文关键字:NULL returning item xrces      更新时间:2023-10-16

我正在解析xml,需要获取子节点的计数。以下是相同的代码片段:

 int getChildCount(const char* parentTag, int parentIndex, 
                                      const char* childTag)
    {
        XMLCh* temp = XMLString::transcode(parentTag);
        DOMNodeList* list = _elementRoot->getElementsByTagName(temp);
        //XMLString::release(&temp);
        //DOMNode* parent = (list->item(parentIndex));
        DOMElement* parent = dynamic_cast<DOMElement*>(list->item(parentIndex));
        DOMNodeList* childList = parent->getElementsByTagName(XMLString::transcode(childTag));
        return (int)childList->getLength();
    }
int main(int argc, char** argv)
{
    string value;

         int length = getChildCount("Bookstore", 0, "Book");
         cout << length;
}

行DOMElement*parent=dynamic_cast(list->item(parentIndex));失败,因为父级返回NULL。

我的xml文件如下:

<bookstore>
    <book category="yy">
        <title lang="en">xxx</title>
        <author>hhh</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="kk">
        <title lang="en">abcd</title>
        <author>ser</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
</bookstore>

有人能指出我犯的错误是什么吗。谢谢

XML区分大小写-Bookstorebookstore:不同

int length = getChildCount("bookstore", 0, "Book");