У меня есть ниже рекурсивная функция, которая читает файл xml:
string getChildNodes(XmlNode cn) {
foreach(XmlNode xN in cn.ChildNodes) {
if (cn.LocalName.Equals("Key") && cn.InnerText.Equals("indexSystem")) {
var next = cn.NextSibling;
var oPath = next.InnerText;
return oPath;
}
getChildNodes(xN);
}
return "def";
}
//main function
// Console.WriteLine(response);
XmlDocument xDoc = new XmlDocument();
xDoc.Load(@ "D:\Response.xml");
// XmlNodeList str = xDoc.GetElementsByTagName("d:Cells");
foreach(XmlNode node in xDoc.DocumentElement.ChildNodes) {
originalPath = getChildNodes(node);
}
Console.Writeln(originalPath);
В рекурсивной функции, когда выполняется следующее условие: if (cn.LocalName.Equals ("Key") && cn Элемент управления .InnerText.Equals ("indexSystem")) не возвращается обратно к вызову функции, т.е. originalPath = getChildNodes (node);
Пожалуйста, помогите мне исправить код.
Ниже приведен xml содержание файла:
<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">114</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>777211db-56a9-4cb8-804d-7fd6bcd3aadd</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 m:type="Collection(SP.KeyValue)">
<d:element>
<d:Key>GenerationId</d:Key>
<d:Value>9223372036854775806</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
<d:element>
<d:Key>indexSystem</d:Key>
<d:Value/>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element>
<d:Key>ExecutionTimeMs</d:Key>
<d:Value>109</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
<d:element>
<d:Key>QueryModification</d:Key>
<d:Value>demoDoc -ContentClass=urn:content-class:SPSPeople</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element>
<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>
<d:Key>StartRecord</d:Key>
<d:Value>0</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
<d:element>
<d:Key>IsLastBlockInSubstrate</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>IsFirstBlockInSubstrate</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>IsFirstPinnedResultBlock</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>IsLastPinnedResultBlock</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>IsFirstRankedResultBlock</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>IsLastRankedResultBlock</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>GeoLocationSource</d:Key>
<d:Value>NAM</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element>
<d:Key>MixedTableOrder</d:Key>
<d:Value>0</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
</d:Properties>
<d:ResultTitle m:null="true"/>
<d:ResultTitleUrl m:null="true"/>
<d:RowCount m:type="Edm.Int32">1</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>28.7494258880615</d:Value>
<d:ValueType>Edm.Double</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>DocId</d:Key>
<d:Value>17625071135127</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>WorkId</d:Key>
<d:Value>17625071135127</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>Title</d:Key>
<d:Value>DemoDoc</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>Author</d:Key>
<d:Value>John</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>Size</d:Key>
<d:Value>16820</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>Path</d:Key>
<d:Value>
https://company.sharepoint.com/sites/MOCTeams/Dev/DemocompanyApps/DemoDoc.docx
</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>Description</d:Key>
<d:Value m:null="true"/>
<d:ValueType>Null</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>Write</d:Key>
<d:Value>2012-08-07T16:44:00.0000000Z</d:Value>
<d:ValueType>Edm.DateTime</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>LastModifiedTime</d:Key>
<d:Value>2012-08-07T16:44:00.0000000Z</d:Value>
<d:ValueType>Edm.DateTime</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>CollapsingStatus</d:Key>
<d:Value>0</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>HitHighlightedSummary</d:Key>
<d:Value/>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>HitHighlightedProperties</d:Key>
<d:Value m:null="true"/>
<d:ValueType>Null</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>contentclass</d:Key>
<d:Value>STS_ListItem_DocumentLibrary</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>PictureThumbnailURL</d:Key>
<d:Value m:null="true"/>
<d:ValueType>Null</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>ServerRedirectedURL</d:Key>
<d:Value>
https://company.sharepoint.com/sites/MOCTeams/Dev/_layouts/15/Doc.aspx?sourcedoc=%7BD6D61B34-73D2-4B46-B34C-9CA1D7681545%7D&file=DemoDoc.docx&action=default&mobileredirect=true&DefaultItemOpen=1
</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>ServerRedirectedEmbedURL</d:Key>
<d:Value>
https://company.sharepoint.com/sites/MOCTeams/Dev/_layouts/15/Doc.aspx?sourcedoc={d6d61b34-73d2-4b46-b34c-9ca1d7681545}&action=interactivepreview
</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>ServerRedirectedPreviewURL</d:Key>
<d:Value>
https://company.sharepoint.com/sites/MOCTeams/Dev/_layouts/15/Doc.aspx?sourcedoc={d6d61b34-73d2-4b46-b34c-9ca1d7681545}&action=imagepreview
</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>FileExtension</d:Key>
<d:Value>docx</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>ContentTypeId</d:Key>
<d:Value>0x0101002EF4BA7F2C07354788AC1CDBF96B8C6E</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>ParentLink</d:Key>
<d:Value>
https://company.sharepoint.com/sites/MOCTeams/Dev/DemocompanyApps/Forms/AllItems.aspx
</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>ViewsLifeTime</d:Key>
<d:Value>4</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>ViewsRecent</d:Key>
<d:Value>4</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>SectionNames</d:Key>
<d:Value/>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>SectionIndexes</d:Key>
<d:Value/>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>SiteLogo</d:Key>
<d:Value m:null="true"/>
<d:ValueType>Null</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>SiteDescription</d:Key>
<d:Value m:null="true"/>
<d:ValueType>Null</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>deeplinks</d:Key>
<d:Value m:null="true"/>
<d:ValueType>Null</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>importance</d:Key>
<d:Value>0</d:Value>
<d:ValueType>Edm.Int64</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>SiteName</d:Key>
<d:Value>https://company.sharepoint.com/sites/mocteams</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>IsDocument</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>FileType</d:Key>
<d:Value>docx</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>IsContainer</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>WebTemplate</d:Key>
<d:Value m:null="true"/>
<d:ValueType>Null</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>SecondaryFileExtension</d:Key>
<d:Value>docx</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>docaclmeta</d:Key>
<d:Value m:null="true"/>
<d:ValueType>Null</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>SPWebUrl</d:Key>
<d:Value>
https://company.sharepoint.com/sites/MOCTeams/Dev
</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>UniqueId</d:Key>
<d:Value>{D6D61B34-73D2-4B46-B34C-9CA1D7681545}</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>ProgId</d:Key>
<d:Value m:null="true"/>
<d:ValueType>Null</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>LinkingUrl</d:Key>
<d:Value>
https://company.sharepoint.com/sites/MOCTeams/Dev/DemocompanyApps/DemoDoc.docx?d=wd6d61b3473d24b46b34c9ca1d7681545
</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>SiteId</d:Key>
<d:Value>b1a40cd6-9335-4284-8b41-7d26574a8f56</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>WebId</d:Key>
<d:Value>e6213bf7-6f48-4e79-90d5-ccfee7bbdf08</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>OriginalPath</d:Key>
<d:Value>
https://company.sharepoint.com/sites/MOCTeams/Dev/DemocompanyApps/DemoDoc.docx
</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>ResultTypeIdList</d:Key>
<d:Value m:null="true"/>
<d:ValueType>Null</d:ValueType>
</d:element>
<d:element m:type="SP.KeyValue">
<d:Key>ResultTypeId</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:element m:type="SP.KeyValue">
<d:Key>PartitionId</d:Key>
<d:Value>1ab41d5a-8833-4af0-82be-e3c54d03997b</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>Culture</d:Key>
<d:Value>en-US</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
</d:Cells>
</d:element>
</d:Rows>
</d:Table>
<d:TotalRows m:type="Edm.Int32">1</d:TotalRows>
<d:TotalRowsIncludingDuplicates m:type="Edm.Int32">1</d:TotalRowsIncludingDuplicates>
</d:RelevantResults>
<d:SpecialTermResults m:null="true"/>
</d:PrimaryQueryResult>
<d:Properties m:type="Collection(SP.KeyValue)">
<d:element>
<d:Key>RowLimit</d:Key>
<d:Value>10</d:Value>
<d:ValueType>Edm.Int32</d:ValueType>
</d:element>
<d:element>
<d:Key>SourceId</d:Key>
<d:Value>8413cd39-2156-4e00-b54d-11efd9abdb89</d:Value>
<d:ValueType>Edm.Guid</d:ValueType>
</d:element>
<d:element>
<d:Key>CorrelationId</d:Key>
<d:Value>c8622b9f-40b3-9000-8539-ae6db2299a08</d:Value>
<d:ValueType>Edm.Guid</d:ValueType>
</d:element>
<d:element>
<d:Key>WasGroupRestricted</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>WordBreakerLanguage</d:Key>
<d:Value>en</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element>
<d:Key>IsPartialUpnDocIdMapping</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>EnableInterleaving</d:Key>
<d:Value>true</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>IsMissingUnifiedGroups</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>Constellation</d:Key>
<d:Value>i29EA6</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element>
<d:Key>MultiGeoSearchStatus</d:Key>
<d:Value>Full</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element>
<d:Key>IsPartial</d:Key>
<d:Value>false</d:Value>
<d:ValueType>Edm.Boolean</d:ValueType>
</d:element>
<d:element>
<d:Key>InternalRequestId</d:Key>
<d:Value>a10cf383-be13-4f36-8bf2-927fad3f759f</d:Value>
<d:ValueType>Edm.String</d:ValueType>
</d:element>
<d:element>
<d:Key>SerializedQuery</d:Key>
<d:Value>
<Query Culture="en-US" EnableStemming="True" EnablePhonetic="False" EnableNicknames="False" IgnoreAllNoiseQuery="True" SummaryLength="180" MaxSnippetLength="180" DesiredSnippetLength="90" KeywordInclusion="0" QueryText="demoDoc" QueryTemplate="" TrimDuplicates="True" Site="321cf1a7-64e8-42b4-bcb0-979df1f325ba" Web="906b0097-58fe-40f6-9d28-97bfdbff7e22" 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/>
<d:TriggeredRules m:type="Collection(Edm.Guid)"/>
</d:query>