It's not clear what result you want, but here is a sample that I have lying around that may get you started:
DECLARE @x xml =
'<Orders>
<Order>
<OrderID>13000</OrderID>
<CustomerID>ALFKI</CustomerID>
<OrderDate>2006-09-20Z</OrderDate>
<EmployeeID>2</EmployeeID>
<OrderDetails>
<ProductID>76</ProductID>
<Price>123</Price>
<Qty>10</Qty>
</OrderDetails>
<OrderDetails>
<ProductID>16</ProductID>
<Price>3.23</Price>
<Qty>20</Qty>
</OrderDetails>
</Order>
<Order>
<OrderID>13001</OrderID>
<CustomerID>VINET</CustomerID>
<OrderDate>2006-09-20Z</OrderDate>
<EmployeeID>1</EmployeeID>
<OrderDetails>
<ProductID>12</ProductID>
<Price>12.23</Price>
<Qty>1</Qty>
</OrderDetails>
</Order>
</Orders>'
SELECT OrderID = T.Item.value('(OrderID/text())[1]', 'int'),
CustomerID = T.Item.value('(CustomerID/text())[1]', 'nchar(5)'),
OrderDate = T.Item.value('(OrderDate/text())[1]', 'datetime'),
EmployeeId = T.Item.value('(EmployeeID/text())[1]', 'smallint')
FROM @x.nodes('Orders/Order') AS T(Item)
SELECT OrderID = O.n.value('(OrderID/text())[1]', 'int'),
ProductID = D.n.value('(ProductID/text())[1]', 'int'),
Price = D.n.value('(Price/text())[1]', 'decimal(10,2)'),
Qty = D.n.value('(Qty/text())[1]', 'int')
FROM @x.nodes('/Orders/Order') AS O(n)
CROSS APPLY O.n.nodes('OrderDetails') AS D(n)