【问题标题】:SharePoint search web service with an ampersand带有 & 符号的 SharePoint 搜索 Web 服务
【发布时间】:2014-10-01 17:38:47
【问题描述】:

我正在开发一个 JavaScript 工具,供我的用户使用预定义的值检索搜索结果。其中一个预定义值具有一个包含 & 符号的短语。我不知道如何格式化字符串,以便查询 Web 服务返回一个值。

var eventCat = "Conference & Events";
var dateQ = "(DateStart>='" + startDate + "' AND DateStart<='" + endDate + "') AND ";
var eventQ = " EventCategory='" + eventCat + "' AND ";
var q = "SELECT Title,Path,Description,Write,Rank,Size,DateStart,DateEnd,EventCategory,GroupOnly  FROM SCOPE() WHERE ";
q += dateQ + eventQ + " GroupOnly=false AND (\"SCOPE\"='Sales Marketing & Excellence Events')";

var queryText = makeQuery(q);

makeQuery 创建查询 Web 服务所需的 XML,将 & 符号转换为 &、 转换为 >。

<QueryPacket xmlns='urn:Microsoft.Search.Query' Revision='1000'>
  <Query>
    <Context>
      <QueryText language='en-US' type='MSSQLFT'>
        SELECT 
          Title,Path,Description,Write,Rank,Size,DateStart,DateEnd,EventCategory,GroupOnly  
        FROM 
          SCOPE() 
        WHERE 
          (DateStart&gt;='2014-09-28T00:00:00Z' AND DateStart&lt;='2014-11-09T23:59:59Z') AND 
          EventCategory='Conference &amp; Events' AND  
          GroupOnly=false AND 
          ("SCOPE"='Sales Marketing & Excellence Events')
      </QueryText>
    </Context>
    <IncludeSpecialTermResults>true</IncludeSpecialTermResults>
  </Query>
</QueryPacket> 

当 eventCat 具有像 All 这样的其他值时,这将按预期工作,但是当我发送上面的查询时,SharePoint 返回错误:An error occurred while parsing EntityName

我尝试用各种替代品替换 & 符号,但我所做的一切都没有奏效。发送的正确格式是什么?

【问题讨论】:

    标签: sharepoint sharepoint-2010 sharepoint-webservice


    【解决方案1】:

    我想通了。我在查询周围添加了&lt;[CDATA[

    <QueryPacket xmlns='urn:Microsoft.Search.Query' Revision='1000'>
      <Query>
        <Context>
          <QueryText language='en-US' type='MSSQLFT'><[CDATA[
            SELECT 
              Title,Path,Description,Write,Rank,Size,DateStart,DateEnd,EventCategory,GroupOnly  
            FROM 
              SCOPE() 
            WHERE 
              (DateStart>='2014-09-28T00:00:00Z' AND DateStart<='2014-11-09T23:59:59Z') AND 
              EventCategory='Conference & Events' AND  
              GroupOnly=false AND 
              ("SCOPE"='Sales Marketing & Excellence Events')
          ]]></QueryText>
        </Context>
        <IncludeSpecialTermResults>true</IncludeSpecialTermResults>
      </Query>
    </QueryPacket>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      相关资源
      最近更新 更多