2016-09-19 5 views
2

私のコード:この例では、ノードaとimgをSQLで取得する方法は?

Declare @htmlXML xml =' 
<li> 
      <a class="group" onclick="changeimage(http://laptopbatteryone.com/media/catalog/product/cache/1/thumbnail/1200x1200/9df78eab33525d08d6e5fb8d27136e95/l/b/lb-ac48-44-back.jpg)" href="javascript:;" title="" > 
       <img src="http://laptopbatteryone.com/media/catalog/product/cache/1/thumbnail/250x250/9df78eab33525d08d6e5fb8d27136e95/l/b/lb-ac48-44-back.jpg" alt="Acer Aspire 1420P Battery [6 Cells 4400mAh 10.8V]"/> 
      </a> 
     </li> 
     ' 



SELECT n.c.value('@alt','nvarchar(max)') as Brand 
     ,t.v.value('@onclick','nvarchar(max)') as [URL] 
     FROM @htmlXML.nodes('li/a') as t(v) 
     outer apply t.v.nodes('li/a/img') as n(c) 

私はSQLでこの出力に含まにしたいです。 出力:あなたのヒントについて

url img in <a onclick : http://laptopbatteryone.com/media/catalog/product/cache/1/thumbnail/1200x1200/9df78eab33525d08d6e5fb8d27136e95/l/b/lb-ac48-44-back.jpg 

alt img in img tag: Acer Aspire 1420P Battery [6 Cells 4400mAh 10.8V] 

おかげで、私の友人

+0

こんにちは、あなたはここに新しいしているとして(ところで:ようこそ!)私に1つのヒントを許可してください:あなたの問題が解決された場合、それは非常になります(ベスト)回答の投票カウンターの下にある受け入れ確認にチェックを入れてください。これは、1)この問題を解決済みとマークします。2)フォロワーが最良の解決策を見つけるのをより簡単にします。3)回答者にポイントを払います。あなたが15ポイントの国境を越えたら、あなたは寄付に投票するように求められます。これは、ありがとうと言います。また、あなたの古い質問も見てください。ハッピーコーディング! – Shnugo

答えて

0

事実のほかには、そのHTMLは、XML(と私は本当にherehereを見て、もう一度あなたから、このような質問を読み取るために笑顔開始)ではありません(まだこれを助言しません)この場合は、それがうまくいくかもしれない...

Declare @htmlXML xml = 
'<li> 
    <a class="group" onclick="changeimage(http://laptopbatteryone.com/media/catalog/product/cache/1/thumbnail/1200x1200/9df78eab33525d08d6e5fb8d27136e95/l/b/lb-ac48-44-back.jpg)" href="javascript:;" title=""> 
    <img src="http://laptopbatteryone.com/media/catalog/product/cache/1/thumbnail/250x250/9df78eab33525d08d6e5fb8d27136e95/l/b/lb-ac48-44-back.jpg" alt="Acer Aspire 1420P Battery [6 Cells 4400mAh 10.8V]" /> 
    </a> 
</li>'; 

--Theクエリ

SELECT a.value('@class','nvarchar(max)') AS a_class 
     ,a.value('@onclick','nvarchar(max)') AS a_onclick 
     ,SUBSTRING(a.value('@onclick','nvarchar(max)'),13,LEN(a.value('@onclick','nvarchar(max)'))-13) AS a_onclick_URL 
     ,a.value('@href','nvarchar(max)') AS a_href 
     ,img.value('@src','nvarchar(max)') as img_src 
     ,img.value('@alt','nvarchar(max)') as img_alt 
     FROM @htmlXML.nodes('li/a') as A(a) 
     outer apply a.nodes('img') as B(img); 

結果(行方向実際に...)

a_class: group  
a_onclick: changeimage(http://laptopbatteryone.com/media/catalog/product/cache/1/thumbnail/1200x1200/9df78eab33525d08d6e5fb8d27136e95/l/b/lb-ac48-44-back.jpg) 
URL:  http://laptopbatteryone.com/media/catalog/product/cache/1/thumbnail/1200x1200/9df78eab33525d08d6e5fb8d27136e95/l/b/lb-ac48-44-back.jpg 
a_href: javascript:; 
img_src: http://laptopbatteryone.com/media/catalog/product/cache/1/thumbnail/250x250/9df78eab33525d08d6e5fb8d27136e95/l/b/lb-ac48-44-back.jpg 
img_alt: Acer Aspire 1420P Battery [6 Cells 4400mAh 10.8V] 
+0

ありがとうShungo、非常にgood.solved。 – cyrus2500

関連する問題