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


C# XmlBContext.acceptUntil方法代码示例

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


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

示例1: lAcceptPcData

        /// <summary>Utility function which parse a PCDATA component 
        /// from a context. It takes the entities defined in the
        /// in the configuration into account.</summary>
        /// <param name="ctxt">the context from which the data must be 
        ///        parsed</param>
        /// <param name="maxLen">the maximal number of characters that 
        ///        can be read.</param>
        /// <param name="closingCh">a character on which parsing must stop
        ///        in addition to the standard &lt; character.</param>
        /// <param name="wsMode">indicates PRESERVE (default), REPLACE or COLLAPSE.</param>
        public static string lAcceptPcData(XmlBContext ctxt, 
                                   int maxLen,
                                   char closingCh,
                                   int wsMode)
        {
            char ch;
            char lastch = '.';
            System.Text.StringBuilder buff;
             string  res;

              buff = new System.Text.StringBuilder();
              bool go_on = true;
              while (go_on)
            {
              go_on = false;
              while ((ctxt.current() != '<') && (ctxt.current() != closingCh)) // while 1
            {
            ch = ctxt.current();
            ctxt.advance();
            if (ch == '&'){
            ch = lAcceptPcDataChr(ctxt);
            } else {
            if (wsMode >= WS_REPLACE){
            if (ch == '\t' || ch == '\n' || ch == '\r'){
            ch = ' ';
            } // If
            if (wsMode == WS_COLLAPSE){
            if ((ch == ' ') && ((lastch == ' ') || (buff.Length == 0))){
            ch = (char)0;
            } else {
            lastch = ch;
            } // If
            } else {
            lastch = ch;
            } // If
            } // If
            } // If
            if (ch != '\0'){
            buff.Append (ch);
            } // If
            }
            // end while
            if (ctxt.current() == '<'){
            if (ctxt.lookAheadString("<![CDATA[")){
             string  cdata = ctxt.acceptUntil("]]>", true);
            buff.Append (cdata);
            go_on = true;
            } else {
            if (ctxt.lookAhead2('<','?')){
            ctxt.skipTill ('?');
            ctxt.accept2('?','>');
            go_on = true;
            } else {
            } // If
            } // If
            } // If
            }
            if (wsMode == WS_COLLAPSE && lastch == ' ' && buff. Length > 0){
            res = buff.ToString (0, buff.Length -1);
            } else {
            res = buff.ToString();
            } // If
            if ((maxLen > 0) && (res.Length > maxLen)){
            ctxt.recoverableFail ("Maximum length exceeded");
            } // If
            return res;
        }
开发者ID:GautierBerck,项目名称:ERTMSFormalSpecs,代码行数:77,代码来源:DataDictionary.Generated.cs


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