আমার কাছে ডেটা বেসে এইচটিএমএল কোড রয়েছে এবং আমি এটি এক্সএমএল হিসাবে পড়তে চাই।
আমার কোডগুলি:
http://rextester.com/RMEHO89992
এটি আমার কাছে থাকা HTML কোডের একটি উদাহরণ:
<div>
<section>
<h4>
<span> A </span>
</h4>
<ul>
<li>
<span> Ab</span>
AD
<span> AC </span>
</li>
<li>
<span> Ag</span>
<span> AL </span>
</li>
</ul>
<h4>
<span> B </span>
</h4>
<ul>
<li>
<span> Bb</span>
BD
<span> BC </span>
</li>
<li>
<span> Bg</span>
<span> BL </span>
</li>
</ul>
</section>
</div>
এবং এটি আমার প্রয়োজনীয় আউটপুটটির একটি উদাহরণ:
Category Selection Value
--------- --------- ------------
A Ab AD
A Ag AL
B Bb BD
B Bg BL
আমার <h4>
হিসাবে ট্যাগের Category
মধ্যে প্রথমটি, <span>
নির্বাচনের হিসাবে প্রথম ট্যাগটি এবং বাকী মানগুলি একটি কাঠের স্ট্রিং হিসাবে পাওয়া দরকার।
আমি নিম্নলিখিত জিজ্ঞাসা চেষ্টা করেছি:
SELECT
( isnull(t.v.value('(h4/span/span[1]/text())[1]','nvarchar(max)'),'')
+ isnull(t.v.value('(h4/span/text())[1]','nvarchar(max)'),'')
+ isnull(t.v.value('(h4/span/span[2]/text())[2]','nvarchar(max)'),'')
) AS [Category],
( isnull(c.g.value('(span[1]/text())[1]','nvarchar(max)'),'')
+ isnull(c.g.value('(span[1]/span/text())[1]','nvarchar(max)'),'')
+ isnull(c.g.value('(span[1]/text())[2]','nvarchar(max)'),'')
) AS [Selection],
( isnull(c.g.value('(span[2]/text())[1]','nvarchar(max)'),'')
+ isnull(c.g.value('(span[2]/span/text())[1]','nvarchar(max)'),'')
+ isnull(c.g.value('(span[2]/text())[2]','nvarchar(max)'),'')
) AS [Value]
FROM @htmlXML.nodes('div/section') as t(v)
CROSS APPLY t.v.nodes('./ul/li') AS c(g)
এবং :
SELECT
t.v.value('.','nvarchar(max)')
,
--( isnull(t.v.value('(h4/span/span[1]/text())[1]','nvarchar(max)'),'')+isnull(t.v.value('(h4/span/text())[1]','nvarchar(max)'),'')+isnull(t.v.value('(h4/span/span[2]/text())[2]','nvarchar(max)'),''))AS [Category],
( isnull(c.g.value('(span[1]/text())[1]','nvarchar(max)'),'')+isnull(c.g.value('(span[1]/span/text())[1]','nvarchar(max)'),'')+isnull(c.g.value('(span[1]/text())[2]','nvarchar(max)'),''))AS [Selection]
,
( isnull(c.g.value('(span[2]/text())[1]','nvarchar(max)'),'')+isnull(c.g.value('(span[2]/span/text())[1]','nvarchar(max)'),'')+isnull(c.g.value('(span[2]/text())[2]','nvarchar(max)'),''))AS [Value]
FROM @htmlXML.nodes('div/section/h4/span') as t(v)
CROSS APPLY @htmlXML.nodes('div/section/ul/li') AS c(g)
তবে এটি কেবল প্রথম বিভাগটি পায় এবং সমস্ত মান টগিটার পায় না।
Category Selection Value
--------- --------- ------------
A Ab AC
B Ab AC
A Ag AL
B Ag AL
A Bb BC
B Bb BC
A Bg BL
B Bg BL
এন বিভাগ থাকতে পারে এবং মানগুলি <span>
ট্যাগের মধ্যে থাকতে পারে বা নাও পারে । কীভাবে আমি সমস্ত বিভাগগুলি তাদের সম্পর্কিত মান সহ পেতে পারি? বা পেতে:
category h4 number
-------- -----------
A 1
B 2
- 1, গড় = h4 প্রথম, 2, গড় = এইচ 4 সেকেন্ড
ul number Selection Value
--------- --------- ------------
1 Ab AD
1 Ag AL
2 Bb BD
2 Bg BL
কলাম উল নম্বর এবং এইচ 4 সংখ্যার মধ্যে সম্পর্ক। আমি পারি না.
AD AC
তৃতীয় কলামে প্রথম সারির জন্য হওয়া উচিত নয় ?