2017-05-22 14 views
0

私はダムファイルからhtmlタグを取り除くSQL関数を持っていますが、ファイル全体を処理しません。これは私のコードです:htmlタグを削除する関数がファイル全体でない

CREATE FUNCTION dbo.CLearHTMLTags(@htmlInput VARCHAR(MAX),@newChar char(1)) 
RETURNS VARCHAR(MAX) 
AS 
BEGIN 
DECLARE @begin BIGINT 
DECLARE @end BIGINT 
DECLARE @length BIGINT 
SET @begin = CHARINDEX('<', @htmlInput) 
SET @end = CHARINDEX('>', @htmlInput, CHARINDEX('<',@htmlInput)) 
SET @length = (@end - @begin) + 1 WHILE @begin > 0 AND @end > 0 AND @length > 0 
BEGIN 
IF (UPPER(SUBSTRING(@htmlInput, @begin, 4)) <> '') AND (UPPER(SUBSTRING(@htmlInput, @begin, 5))<>'') 
BEGIN 
SET @htmlInput = RTRIM(LTRIM(STUFF(@htmlInput,@begin,@length,@newChar))) 
END 
ELSE SET @length = 0; 
SET @begin = CHARINDEX('<', @htmlInput, @[email protected]) 
SET @end = CHARINDEX('>', @htmlInput, CHARINDEX('<', @htmlInput,@begin)) 
SET @length = (@end - @begin)+1 
END 
RETURN isnull(RTRIM(LTRIM(@htmlInput)),'') 
END 

ファイルを介してdusを実行すると、最初の20行か何かが停止して停止します。

<!DOCTYPE html> 
<html> 

    <head> 
    <meta charset="UTF8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>EenmaalAndermaal</title> 
    <link rel="shortcut icon" href="img/favicon.png"> 
    <link rel="stylesheet" href="css/bootstrap.min.css"> 
    <link rel="stylesheet" href="css/main.css"> 
    <script src="js/jquery.min.js"></script> 
    <script src="js/bootstrap.min.js"></script> 
    </head> 

    <body id="content"> 
    <nav class="navbar navbar-default"> 
     <div class="container-fluid"> 
     <!-- Site name and toggle button --> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="./">EenmaalAndermaal</a> 
     </div> 

     <div class="collapse navbar-collapse" id="navbar-collapse"> 
      <ul class="nav navbar-nav"> 
      <li><a href="./">Home</a></li> 
      <li><a href="browse.html">Openstaande veilingen</a></li> 
      <li><a href="overOns.html">Over ons</a></li> 
      </ul> 

      <ul class="nav navbar-nav navbar-right"> 
      <li><a href="register.html">Registeren</a></li> 
      <li class="dropdown"> 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"> 
       Inloggen <span class="caret"></span> 
       </a> 

       <div class="dropdown-menu" id="formLogin"> 
       <div class="row"> 
        <div class="container-fluid"> 
        <form class=""> 
         <div class="form-group"> 
         <label for="login_username">Gebruikersnaam</label> 
         <input class="form-control" name="username" id="login_username" type="text"> 
         </div> 
         <div class="form-group"> 
         <label for="login_password">Wachtwoord</label> 
         <input class="form-control" name="password" id="login_password" type="password"> 
         </div> 
         <div class="form-group"> 
         <button type="submit" class="btn btn-success btn-block"> 
          <span class="glyphicon glyphicon-log-in pull-left"></span> 
          Inloggen 
         </button> 
         </div> 
         <div class="text-center"> 
         <a href="wachtwoordvergeten.html">Wachtwoord Vergeten</a> 
         </div> 
        </form> 
        </div> 
       </div> 
       </div> 
      </li> 
      </ul> 

      <form class="navbar-form navbar-right"> 
      <div class="form-group"> 
       <div class="input-group"> 
       <input type="search" class="form-control" placeholder="Zoeken"> 
       <span class="input-group-btn"> 
        <button class="btn btn-default" type="submit"> 
         <span class="glyphicon glyphicon-search" aria-hidden="true"></span> 
         <span class="sr-only">Zoeken</span> 
        </button> 
        </span> 
       </div> 
      </div> 
      </form> 
     </div> 
     </div> 
    </nav> 

    <div class="container"> 
     <h1 class="page-header">Goede staat tweedehands fiets</h1> 
     <div class="row"> 
     <div class="col-md-8"> 

      <div class="row"> 
      <div class="col-xs-6 col-md-4"> 
       <img class="img-thumbnail" src="http://www.studentfiets.nl/wp-content/uploads/2015/04/damesfiets-04.jpg" height="200"> 
      </div> 
      <div class="col-xs-6 col-md-4"> 
       <img class="img-thumbnail" src="http://www.studentfiets.nl/wp-content/uploads/2015/04/STU-fietsnieuw-04.jpg" height="200"> 
      </div> 
      <div class="col-xs-6 col-md-4"> 
       <img class="img-thumbnail" src="http://www.studentfiets.nl/wp-content/uploads/2015/04/herenfiets-03.jpg" height="200"> 
      </div> 
      </div> 

      <hr> 

      <div class="panel panel-primary"> 
      <div class="panel-heading"> 
       <h1 class="panel-title">Details</h1> 
      </div> 
      <table class="table table-striped"> 
       <tr> 
       <td>Verkoper:</td> 
       <td><a href="">Max Molewijk</a></td> 
       </tr> 
       <tr> 
       <td>Beschrijving:</td> 
       <td>Deze mooie fiets is goed te gebruiken voor tripjes naar het station. Het bevat 3 versnellingen en een bagagedrager. Voor in de nacht is het uitgerust met een koplamp en een dynamo. Een interresante feature van deze prachtige fiets is dat de remmen je af en toe kunnen verrassen. Er is ook geen sleutel nodig om deze fiets van het slot te halen. Het is een bijna nieuwe staat met maar 1.000 km op de teller.</td> 

       </tr> 
       <tr> 
       <td>Startprijs:</td> 
       <td>€ 70,-</td> 
       </tr> 
       <tr> 
       <td>Betalingswijze:</td> 
       <td>Bank/Giro</td> 
       </tr> 
       <tr> 
       <td>Betalingsinstructies:</td> 
       <td>Overschrijving moet ontvangen zijn binnen 3 dagen</td> 
       </tr> 
       <tr> 
       <td>Voorwerplocatie</td> 
       <td>Arnhem, Nederland</td> 
       </tr> 
       <tr> 
       <td>Looptijd</td> 
       <td>14 dagen</td> 
       </tr> 
       <tr> 
       <td>Verzendkosten:</td> 
       <td>€ 14,99</td> 
       </tr> 
       <tr> 
       <td>Verzendinstructies:</td> 
       <td>Kom ophalen bij Neppestraat 90 Arnhem</td> 
       </tr> 
       <tr> 
       <td>Voorwerpnummer:</td> 
       <td>336035</td> 
       </tr> 
      </table> 
      </div> 
     </div> 
     <div class="col-md-4"> 
      <div class="panel panel-primary bids"> 
      <div class="panel-body bids-header bg-primary text-center"> 
       <div class="price">€ 105,-</div> 
       <form> 
       <div class="form-group"> 
        <div class="input-group input-group-lg"> 
        <span class="input-group-addon"> 
         <span class="glyphicon glyphicon-euro"></span> 
        </span> 
        <input type="number" class="form-control text-center" value="110"> 
        <div class="input-group-btn"> 
         <button type="submit" class="btn btn-default"> 
         <span class="glyphicon glyphicon-share-alt"></span> 
         </button> 
        </div> 
        </div> 
       </div> 
       </form> 
       <div class="time">11:41:38</div> 
      </div> 
      <table class="table table-striped text-center"> 
       <tr> 
       <th class="text-center col-xs-4"><span class="glyphicon glyphicon-user"></span></th> 
       <th class="text-center col-xs-4"><span class="glyphicon glyphicon-euro"></span></th> 
       <th class="text-center col-xs-4"><span class="glyphicon glyphicon-calendar"></span></th> 
       </tr> 
       <tr> 
       <td>Mattijn</td> 
       <td><b>€ 105,-</b></td> 
       <td><span class="label label-default">10:09 8-5-17</span></td> 
       </tr> 
       <tr> 
       <td>Joost</td> 
       <td><b>€ 95,-</b></td> 
       <td><span class="label label-default">13:47 7-5-17</span></td> 
       </tr> 
       <tr> 
       <td>Toine</td> 
       <td><b>€ 80,01</b></td> 
       <td><span class="label label-default">17:24 6-5-17</span></td> 
       </tr> 
       <tr> 
       <td>Bas</td> 
       <td><b>€ 80,-</b></td> 
       <td><span class="label label-default">22:35 5-5-17</span></td> 
       </tr> 
      </table> 
      </div> 
     </div> 
     </div> 
    </div> 

    <div class="footer"> 
    </div> 
    </body> 
</html> 

誰でもアイデアはどのようにこの問題を解決するために:私はテスト 私のファイルは、このですか? 多くのお礼ありがとうございます

+0

xmlをSQL Serverのxmlデータ型で扱わない理由は何ですか?そうすれば、テキスト解析の代わりにxqueryや他のxml型関数を直接使うことができます。 –

+0

SPの入力とは何ですか?正確な入出力を与えてください。 – DhruvJoshi

答えて

0

varchar(max)とnvarchar(max)でcharindexと部分文字列およびその他の文字列メソッドを使用してください。実際にトラバースできる文字の数と、それらが返すデータ型にはいくつかの制限があります。

私のアドバイスは、xqueryと.nodes()を試して、ソリューションの後のタイプのデータセットを取得することです。

+0

修正は簡単です。コンソールへのSQLサーバーの出力は制限されています。実際にはファイル全体を処理しますが、コンソールで試してみたいときは表示しません。 – ICTzaakDEV

関連する問題