এক্সপ্যাথের সাথে লিঙ্ক পাঠ্যের মাধ্যমে আমি কীভাবে লিঙ্ক URL খুঁজে পাব?


88

আমার একটি সুগঠিত এক্সএইচটিএমএল পৃষ্ঠা রয়েছে। আমি লিঙ্কযুক্ত পাঠ্য থাকা অবস্থায় আমি একটি লিঙ্কের গন্তব্য URL খুঁজে পেতে চাই।

উদাহরণ

<a href="http://stackoverflow.com">programming questions site</a>
<a href="http://cnn.com">news</a>

আমি এমন একটি এক্সপথ এক্সপ্রেশন চাই যা দেওয়া হলে programming questions siteএটি দেবে http://stackoverflow.comএবং আমি দিলে newsতা দিবে http://cnn.com

উত্তর:


143

এর মতো কিছু হওয়া উচিত:

// এ [পাঠ্য () = 'পাঠ্য_আই_ওয়ান্ত_টো_ফাইন্ড'] / @ href

75
আমি কি কখনও এক্সপথ শিখব? যখন আমি কোনও কোয়েরি দেখি এটি এত স্পষ্ট এবং সহজেই বোঝা যায় ... তবে আমি নিজে থেকে
কোনওটিই

4
@ ফ্লাইওয়াইয়ার যদি আপনি এই স্ট্যানফোর্ডের বিনামূল্যে ডাটাবেস কোর্সের পাঠ্যক্রমটি পড়েন তবে এক্সএমএল এবং এক্সপ্যাথের একটি ভাল বিভাগ রয়েছে।
জেমস পি।

4
পাঠ্য () এর পরিবর্তে, আপনি "। =" ব্যবহার করতে পারেন, উদাহরণস্বরূপ //ailers.= 'এখানে রেজিস্টার করুন']
ড্যানপপ

4
আমি যদি লেখাটি না জানি? আমি কি নোডগুলিতে httpবা নির্দিষ্ট কীওয়ার্ড যুক্ত করতে পারি?
অ্যালস্টন

78

আপনার জন্য খুব দেরী, তবে একই প্রশ্নযুক্ত অন্য কারও জন্য ...

//a[contains(text(), 'programming')]/@href

অবশ্যই, 'প্রোগ্রামিং' কোনও পাঠ্য খণ্ড হতে পারে।


4
এই এক আরও সাধারণীকরণ করা হয়। ভাল
ভাগ্য

এটি কেস সেনসিটিভ। আমি কি এখানে মামলাটি উপেক্ষা করতে পারি?
ব্যবহারকারী 3060430

9
//a[text()='programming quesions site']/@href 

যা মূলত এমন একটি অ্যাঙ্কর নোডকে সনাক্ত করে যা আপনার পছন্দের <a>পাঠ্য রয়েছে এবং hrefবৈশিষ্ট্যটি বের করে ।


6

বর্গাকার বন্ধনীর বাক্যাংশটি এসকিউএল-তে যেখানে একটি বিধি হিসাবে ভাবেন।

সুতরাং এই ক্যোয়ারীটি বলছে, "একটি" ট্যাগের "href" বৈশিষ্ট্য (@) নির্বাচন করুন যা কোথাও প্রদর্শিত হবে (//), তবে কেবল যেখানে (বন্ধনীযুক্ত বাক্যাংশ) "a" ট্যাগের পাঠ্য সামগ্রী ' প্রোগ্রামিং প্রশ্নগুলির সাইট ''।


হাই পিটার, এক্সপ্যাথ কোয়েরি শিখতে আপনার কি কোনও টিউটোরিয়াল সাইট রয়েছে?
করিম নরসিন্দনী

4

সংবেদনশীল সমন্বয়ের ক্ষেত্রে, নিম্নলিখিতটি ব্যবহার করুন:

//a[contains(translate(text(),'PROGRAMMING','programming'), 'programming')]/@href

অনুবাদ হ্রাসকারী প্রোগ্রামগুলিতে বড় হাতের অক্ষরকে লোয়ার কেস প্রোগ্রামিংয়ে রূপান্তর করে।


উত্তর হিসাবে "ধন্যবাদ" যোগ করবেন না দয়া করে। সাইটে কিছুটা সময় ব্যয় করুন এবং আপনার পছন্দ মত উত্তরগুলি আপলোড করার জন্য আপনি যথেষ্ট সুযোগ-সুবিধা পাবেন যা আপনাকে ধন্যবাদ বলার স্ট্যাক ওভারফ্লো উপায়।
Sklivvz

4
"থ্যাঙ্কস" আমার "উত্তর" ছিল না। আমি একরকমভাবে উপরের উত্তরে ক্রেডিট দিচ্ছিলাম যা আমি উন্নত করেছি।
আবদো

1

আপনি যদি এইচটিএমএল চটপটি প্যাক ব্যবহার করেন তবে গেটট্রিবিউটভ্যালু ব্যবহার করুন:

$doc2.DocumentNode.SelectNodes("//div[@class='className']/div[@class='InternalClass']/a[@class='InternalClass']").GetAttributeValue("href","")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.