You're going to want to use a combination of CROSS (or OUTER) APPLY to turn the multiple nodes inside of some of the hierarchies into a virtual table of sorts. Note - you want to structure the APPLY statement to land at the "top" of the subtrees you plan on iterating through.
Something like the follow (note I added a few ID columns for testing purposes):
declare @xml XML
set @xml='<output xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PublishPricingRule.xsd" scenario="PublishPricingRule" sourceSystem="Pricing" eventType="Persist" transactionID="2012-06-26T13:46:52.064">
<pricingRuleCollection id="1">
<pricingRule id="3" >
<pricingInstruction precedenceIndex="1314">
<hierarchyNodeInclusionQualifier precedenceIndex="1315">
<includedHierarchyNodes />
</hierarchyNodeInclusionQualifier>
<hierarchyNodeExclusionQualifier precedenceIndex="1316">
<excludedHierarchyNodes />
</hierarchyNodeExclusionQualifier>
<mediaInclusionQualifier />
<mediaExclusionQualifier />
<brandInclusionQualifier precedenceIndex="1317" />
<brandExclusionQualifier precedenceIndex="1318" />
<monetaryHurdleRangeQualifier precedenceIndex="1319">
<range lower="0.0" upper="9999.99" />
</monetaryHurdleRangeQualifier>
<shippingServiceInclusionQualifier precedenceIndex="1320">
<qualifyingShippingServices>
<qualifyingShippingService value="APO/FPO-Std" />
<qualifyingShippingService value="Catalog Desk Continental" />
<qualifyingShippingService value="Continental-Std" />
</qualifyingShippingServices>
</shippingServiceInclusionQualifier>
<creditCardInclusionQualifier precedenceIndex="1321">
<qualifyingCreditCards>
<qualifyingCreditCard name="Amex" />
<qualifyingCreditCard name="Visa" />
</qualifyingCreditCards>
</creditCardInclusionQualifier>
<directShipInclusionQualifier precedenceIndex="1322" />
<dropShipInclusionQualifier precedenceIndex="1323" />
<proportionalShippingFeeAdjuster adjustmentAmount="0.00" />
</pricingInstruction>
</pricingRule>
</pricingRuleCollection>
</output>'
select @xml
select r.value('(/output/@scenario)[1]','varchar(250)'),
r.value('(/output/pricingRuleCollection/@id)[1]','varchar(250)'),
r.value('(/output/pricingRuleCollection/pricingRule/@id)[1]','varchar(250)'),
r.value('(/output/pricingRuleCollection/pricingRule/pricingInstruction/@precedenceIndex)[1]','int')
,s.value('@value','varchar(100)')
from @xml.nodes('/') x(r)
cross apply r.nodes('output/pricingRuleCollection/pricingRule/pricingInstruction') l(h)
cross apply h.nodes('shippingServiceInclusionQualifier/qualifyingShippingServices/qualifyingShippingService') o(s)
----------------------------------------------------------------------------------
Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?