我对包含xml的网页进行了ajax调用。它将网页作为xml返回,如何返回它,使其更像json(将其转换为JSON)。我查看了accepts
标题,但它们似乎无法正常工作。这是我的代码:
var jqXHR = jQuery.ajax({
url: NBSBranchSiteContextURL ,
accepts:{json:'application/json'},
async:false });
alert(jqXHR.responseText);
xml是:
<?xml version="1.0" encoding="utf-8" ?>
- <d:query xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:type="Microsoft.Office.Server.Search.REST.SearchResult">
<d:ElapsedTime m:type="Edm.Int32">62</d:ElapsedTime>
- <d:PrimaryQueryResult m:type="Microsoft.Office.Server.Search.REST.QueryResult">
<d:CustomResults m:type="Collection(Microsoft.Office.Server.Search.REST.CustomResult)" />
<d:QueryId>d6b8310d-58a6-49e0-bb0e-e9e10ca9de98</d:QueryId>
<d:QueryRuleId m:type="Edm.Guid">00000000-0000-0000-0000-000000000000</d:QueryRuleId>
<d:RefinementResults m:null="true" />
- <d:RelevantResults m:type="Microsoft.Office.Server.Search.REST.RelevantResults">
<d:GroupTemplateId m:null="true" />
<d:ItemTemplateId m:null="true" />
- <d:Properties>
- <d:element m:type="SP.KeyValue">
<d:Key>GenerationId</d:Key>
<d:Value>9223372036854775806</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ExecutionTimeMs</d:Key>
<d:Value>15</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>QueryModification</d:Key>
<d:Value>CostCentreBranchPrefix:JH123 ContentClass=urn:content-class:SPSPeople</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>RenderTemplateId</d:Key>
<d:Value>~sitecollection/_catalogs/masterpage/Display Templates/Search/Group_Default.js</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>StartRecord</d:Key>
<d:Value>0</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsLastBlockInSubstrate</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsFirstBlockInSubstrate</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsFirstPinnedResultBlock</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsLastPinnedResultBlock</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsFirstRankedResultBlock</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>IsLastRankedResultBlock</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
</d:Properties>
<d:ResultTitle m:null="true" />
<d:ResultTitleUrl m:null="true" />
<d:RowCount m:type="Edm.Int32">2</d:RowCount>
- <d:Table m:type="SP.SimpleDataTable">
- <d:Rows>
- <d:element m:type="SP.SimpleDataRow">
- <d:Cells>
- <d:element m:type="SP.KeyValue">
<d:Key>Rank</d:Key>
<d:Value>6.42380905151367</d:Value>
<d:ValueType>Edm.Double</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>DocId</d:Key>
<d:Value>11</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>PreferredName</d:Key>
<d:Value>Dave</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>JobTitle</d:Key>
<d:Value>man</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>EmailAddress</d:Key>
<d:Value>daveH@</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>PartitionId</d:Key>
<d:Value>0c37852b-34d0-418e-91c6-2ac25af4be5b</d:Value>
<d:ValueType>Edm.Guid</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>UrlZone</d:Key>
<d:Value>0</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>AAMEnabledManagedProperties</d:Key>
<d:Value>AttachmentURI;deeplinks;DefaultEncodingURL;ExternalMediaURL;HierarchyUrl;OrgParentUrls;OrgUrls;OriginalPath;ParentLink;Path;PictureThumbnailURL;PictureURL;PublishingImage;recommendedfor;ServerRedirectedEmbedURL;ServerRedirectedPreviewURL;ServerRedirectedURL;SiteLogo;SitePath;SPSiteURL;UserEncodingURL</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>EditProfileUrl</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileViewsLastMonth</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileViewsLastWeek</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileQueriesFoundYou</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>RenderTemplateId</d:Key>
<d:Value>~sitecollection/_catalogs/masterpage/Display Templates/Search/Item_Default.js</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
</d:Cells>
</d:element>
- <d:element m:type="SP.SimpleDataRow">
- <d:Cells>
- <d:element m:type="SP.KeyValue">
<d:Key>Rank</d:Key>
<d:Value>6.42380905151367</d:Value>
<d:ValueType>Edm.Double</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>DocId</d:Key>
<d:Value>13</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>PreferredName</d:Key>
<d:Value>Asad</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>JobTitle</d:Key>
<d:Value>Software</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>EmailAddress</d:Key>
<d:Value>asadr@</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>PartitionId</d:Key>
<d:Value>0c37852b-34d0-418e-91c6-2ac25af4be5b</d:Value>
<d:ValueType>Edm.Guid</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>UrlZone</d:Key>
<d:Value>0</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>AAMEnabledManagedProperties</d:Key>
<d:Value>AttachmentURI;deeplinks;DefaultEncodingURL;ExternalMediaURL;HierarchyUrl;OrgParentUrls;OrgUrls;OriginalPath;ParentLink;Path;PictureThumbnailURL;PictureURL;PublishingImage;recommendedfor;ServerRedirectedEmbedURL;ServerRedirectedPreviewURL;ServerRedirectedURL;SiteLogo;SitePath;SPSiteURL;UserEncodingURL</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>EditProfileUrl</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileViewsLastMonth</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileViewsLastWeek</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>ProfileQueriesFoundYou</d:Key>
<d:Value m:null="true" />
<d:ValueType>Null</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>RenderTemplateId</d:Key>
<d:Value>~sitecollection/_catalogs/masterpage/Display Templates/Search/Item_Default.js</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
</d:Cells>
</d:element>
</d:Rows>
</d:Table>
<d:TotalRows m:type="Edm.Int32">2</d:TotalRows>
<d:TotalRowsIncludingDuplicates m:type="Edm.Int32">2</d:TotalRowsIncludingDuplicates>
</d:RelevantResults>
<d:SpecialTermResults m:null="true" />
</d:PrimaryQueryResult>
- <d:Properties>
- <d:element m:type="SP.KeyValue">
<d:Key>RowLimit</d:Key>
<d:Value>100</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>SourceId</d:Key>
<d:Value>b09a7990-05ea-4af9-81ef-edfab16c4e31</d:Value>
<d:ValueType>Edm.Guid</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>EnableInterleaving</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>piPageImpression</d:Key>
<d:Value>23924_1185_2057</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
- <d:element m:type="SP.KeyValue">
<d:Key>SerializedQuery</d:Key>
<d:Value><Query Culture="en-GB" EnableStemming="True" EnablePhonetic="False" EnableNicknames="False" IgnoreAllNoiseQuery="True" SummaryLength="180" MaxSnippetLength="180" DesiredSnippetLength="90" KeywordInclusion="0" QueryText="CostCentreBranchPrefix:JH123" QueryTemplate="" TrimDuplicates="True" Site="09325ab3-1fbf-4798-8c94-9b7547bfae90" Web="b21f0568-898a-4fd0-b911-916c1491ba15" KeywordType="True" HiddenConstraints="" /></d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
</d:Properties>
<d:SecondaryQueryResults m:type="Collection(Microsoft.Office.Server.Search.REST.QueryResult)" />
<d:SpellingSuggestion m:null="true" />
<d:TriggeredRules m:type="Collection(Edm.Guid)" />
</d:query>
我想要它返回的地方,无论是<d:Key>
PreferredName,JobTitle还是电子邮件<d:Value>
所以在这种情况下,Dave,Asad的名字。 jobtitle和daveH @ and asadr @的电子邮件的人和软件。未来可能会有更多的值
答案 0 :(得分:1)
如果没有设置这样做,您就不能强制服务器将页面提供为JSON(或其他任何内容)。因此,正如一些评论所暗示的那样,如果你想要它在JSON中,你将不得不转换你得到的东西,尽管你可能不需要(因为你还没有说出你想要的东西用数据。
答案 1 :(得分:1)
您可以使用dataType: "xml"
指定响应是XML,然后阅读data
回调中的success
参数或使用responseXML
属性。可以使用DOM API遍历结果,与用于遍历HTML文档的API相同。这意味着您可以使用jQuery来抽象DOM,就像使用HTML DOM选择和遍历一样。
假设您的XML是
<library>
<book title="The Sun Also Rises" author="Hemingway" />
<book title="The Hunger Games" author="Collins" />
<magazine title="Time" issue="578" />
<magazine title="Tacos Monthly" issue="3" />
</library>
您可以使用jQuery获取并检查它:
var jqXHR = jQuery.ajax({
url: NBSBranchSiteContextURL,
dataType: "xml",
success: function(data) {
$xml = $(data);
// get title attribute of the first book, "The Sun Also Rises"
$xml.find("book:eq(0)").attr("title");
// get author attribute of the book entitled "The Hunger Games"
$xml.find("book[title='The Hunger Games']").attr("author");
$xml.find("magazine").each(function(idx, mag) {
var $m = $(mag);
alert($m.attr("title") + " " + $m.attr("issue"));
});
}
});