का उपयोग कर दो एचटीएमएल टैग के बीच सामग्री प्राप्त करना हमारे पास वर्ड में बनाया गया एक बहुत बड़ा सहायता दस्तावेज़ है और इसका उपयोग एक और अधिक बड़े पैमाने पर और अविश्वसनीय रूप से एचटीएम दस्तावेज़ उत्पन्न करने के लिए किया गया था। सी # और इस लाइब्रेरी का उपयोग करके, मैं केवल अपने आवेदन के किसी भी बिंदु पर इस फ़ाइल के एक खंड को पकड़ और प्रदर्शित करना चाहता हूं। धारा इस तरह विभाजित कर रहे हैं:एचटीएमएल एजिलिटी पैक
<!--logical section starts here -->
<div>
<h1><span style='mso-spacerun:yes'></span><a name="_Toc325456104">Section A</a></h1>
</div>
<div> Lots of unnecessary markup for simple formatting... </div>
.....
<!--logical section ends here -->
<div>
<h1><span style='mso-spacerun:yes'></span><a name="_Toc325456104">Section B</a></h1>
</div>
तार्किक रूप से, वहाँ एक a
टैग में एक अनुभाग नाम के साथ एक H1
। मैं बाहरी युक्त div से सबकुछ चुनना चाहता हूं जब तक कि मुझे कोई अन्य h1
न मिले और उस div को बाहर कर दें।
- हर अनुभाग के नाम एक
h1
जो कई बच्चों (के बारे में 6 प्रत्येक) - तार्किक खंड टिप्पणियों के साथ चिह्नित है
- इन टिप्पणियों वास्तविक दस्तावेज़ में मौजूद नहीं है है के तहत एक
<a>
टैग में स्थित है
मेरे प्रयास:
var startNode = helpDocument.DocumentNode.SelectSingleNode("//h1/a[contains(., '"+sectionName+"')]");
//go up one level from the a node to the h1 element
startNode=startNode.ParentNode;
//get the start index as the index of the div containing the h1 element
int startNodeIndex = startNode.ParentNode.ChildNodes.IndexOf(startNode);
//here I am not sure how to get the endNode location.
var endNode =?;
int endNodeIndex = endNode.ParentNode.ChildNodes.IndexOf(endNode);
//select everything from the start index to the end index
var nodes = startNode.ParentNode.ChildNodes.Where((n, index) => index >= startNodeIndex && index <= endNodeIndex).Select(n => n);
साइन मैं इस पर दस्तावेज नहीं ढूंढ पा रहा हूं, मुझे नहीं पता कि मैं अपने प्रारंभ नोड से अगले एच 1 तत्व में कैसे प्राप्त कर सकता हूं। किसी भी सुझाव की सराहना की जाएगी।
अच्छा। मुझे फ़िल्टर को थोड़ा बदलना पड़ा क्योंकि मेरे पास दस्तावेज़ में सेक्शन नामों के साथ कई divs थे। मैं 'HtmlNode startNode = helpDocument.DocumentNode.Descendants ("h1") का उपयोग करके समाप्त हुआ। कहां (डी => डी। इनरटेक्स्ट। कंटेनर (सेक्शननाम))। फर्स्टऑर्डडिल्ट();' और वहां से पैरेंट नोड तक जा रहा है। बाकी सब ने पूरी तरह से काम किया। धन्यवाद – Rondel
उत्कृष्ट। मैं बहुत खुश हूं कि काम किया। –