当前位置: 首页>>代码示例>>C++>>正文


C++ XmlParser::next方法代码示例

本文整理汇总了C++中XmlParser::next方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlParser::next方法的具体用法?C++ XmlParser::next怎么用?C++ XmlParser::next使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XmlParser的用法示例。


在下文中一共展示了XmlParser::next方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ProcessCimElement

Boolean ProcessCimElement(CIMRepository& repository, XmlParser& parser)
{
    XmlEntry entry;

    if (!parser.next(entry) || entry.type != XmlEntry::XML_DECLARATION)
    {
	throw(parser.getLine(), "expected XML declaration");
    }

    if (!XmlReader::testStartTag(parser, entry, "CIM"))
	return false;

    String cimVersion;

    if (!entry.getAttributeValue("CIMVERSION", cimVersion))
    {
	throw XmlValidationError(parser.getLine(), 
	    "missing CIM.CIMVERSION attribute");
    }

    String dtdVersion;

    if (!entry.getAttributeValue("DTDVERSION", dtdVersion))
    {
	throw XmlValidationError(parser.getLine(), 
	    "missing CIM.DTDVERSION attribute");
    }

    if (!ProcessDeclarationElement(repository, parser))
    {
	throw XmlValidationError(parser.getLine(), 
	    "Expected DECLARATION element");
    }

    XmlReader::expectEndTag(parser, "CIM");

    return true;
}
开发者ID:ncultra,项目名称:Pegasus-2.5,代码行数:38,代码来源:loadxml.cpp

示例2: encapsulate


//.........这里部分代码省略.........
    {
        //
        //  No xml declaration
        //  Request may already be encapsulated in HTTP
        //  Check for HTTP method
        //
        char tmp [8];
        char* tmpp = & (tmp [0]);
        strncpy (tmpp, entry.text, 8);
        tmpp[7] = 0;
#if !defined(PEGASUS_COMPILER_MSVC) && !defined(PEGASUS_OS_ZOS)
        char *last;
        char* p = strtok_r (tmpp, HTTP_SP, &last);
#else
        char* p = strtok (tmpp, HTTP_SP);
#endif
        if (p != NULL)
        {
            if ((strcmp (p, HTTP_METHOD_MPOST) == 0) ||
                (strcmp (p, HTTP_METHOD_POST) == 0) ||
            //  This is a special request used for testing.
            //  It includes the HTTP header.
            //  Return the message as is.
                (strcmp (p, HTTP_METHOD_BOGUS) == 0))
            {
                return content;
            }
        }
     }

#ifdef PEGASUS_ENABLE_PROTOCOL_WSMAN

     // Check if the next tag is a SOAP envelope.
     if (parser.next(entry) &&
             entry.type == XmlEntry::START_TAG &&
             strcmp(entry.localName, "Envelope") == 0)
     {
          //
          //  Set WSMAN headers and content.
          //
          message << HTTP_METHOD_POST << HTTP_SP
                  << "/wsman" << HTTP_SP
                  << HTTP_PROTOCOL << HTTP_VERSION_11 << HTTP_CRLF;
          message << HEADER_NAME_HOST << HEADER_SEPARATOR
                  << HTTP_SP << hostName << HTTP_CRLF;
          message << HEADER_NAME_CONTENTTYPE << HEADER_SEPARATOR
                  << HTTP_SP << WSMAN_HEADER_VALUE_CONTENTTYPE
                  << HTTP_CRLF;
          message << HEADER_NAME_CONTENTLENGTH << HEADER_SEPARATOR
                  << HTTP_SP << (Uint32)content.size () << HTTP_CRLF;

          httpHeaders << message;
          message << HTTP_CRLF;
          message << content;
          return message;
     }
     else
     {
         parser.putBack(entry);
     }

#endif

    if (!hasXmlDeclaration)
    {
        //
开发者ID:brunolauze,项目名称:pegasus,代码行数:67,代码来源:XMLProcess.cpp


注:本文中的XmlParser::next方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。