1
对不起这种n00b问题,但这是我第一次在SQL Server(2005)中处理XML。这是我认为会工作...带命名空间的SQL Server 2005 XML
DECLARE @doc xml
SET @doc =
'<?xml version="1.0" encoding="UTF-8"?>
<p:OrderRequest xmlns:p="http://xxx.OrderRequest/2" xmlns:xsi="http://xxx.XMLSchema-instance" xsi:schemaLocation="http://xxx.OrderRequestV2.xsd ">
<p:Header>
<p:LLLRequestCount>0</p:LLLRequestCount>
<p:MFRRequestCount>1</p:MFRRequestCount>
<p:FileCreatedAt>2001-12-31T12:00:00</p:FileCreatedAt>
<p:RequestFileName>p:RequestFileName</p:RequestFileName>
</p:Header>
<p:RequestItems>
<p:MFRRequest id="1" priority="">
<p:AccountNumber>9999999</p:AccountNumber>
<Status>Initial</Status>
<p:CaseInformation>
<ReferralDate>2011-01-01</ReferralDate>
<Type>1A</Type>
<ARM>Yes</ARM>
<InvestorNumber>InvestorNumber</InvestorNumber>
<PropertyAddress>PropertyAddress</PropertyAddress>
<PrivateLabel>Yes</PrivateLabel>
<CaseNumber>01-11111/AK/</CaseNumber>
<SuspenseBalance>9999.00</SuspenseBalance>
<TitleOrderedDate>2011-09-01</TitleOrderedDate>
<TotalMonthlyPayment>876.99</TotalMonthlyPayment>
</p:CaseInformation>
</p:MFRRequest>
</p:RequestItems>
</p:OrderRequest>'
;WITH XMLNAMESPACES(DEFAULT 'http://xxx.OrderRequest/2)')
SELECT Y.i.value('Status[1]', 'varchar(10)') AS Status
FROM @doc.nodes('/OrderRequest/MFRRequest') AS Y(i)
...但我回来了空白。我也尝试过使用OPENXML。我只有空白。我已经尝试了很多这方面的例子,我不知道我错过了什么: -/
我需要撤回MFRRequest,AccountNumber,Status的ID属性,然后将CaseInformation中的几个字段。我将非常感谢任何帮助。非常感谢!
@meowmeow:欢迎您! – 2012-07-26 17:15:18
非常感谢!我讨厌在同一个线程上提出另一个问题,但有什么办法从多个节点中提取数据?我注意到如果我将节点定义为'/ p:OrderRequest/p:RequestItems/p:MFRRequest/p:CaseInformation',Status和AccountNumber变为NULL。这似乎是有道理的。 我需要从MFRRequest以及CaseInformation中提取。我也需要拉财产MFRRequest id =“1”。这是否需要2个不同的查询,然后我必须一起加入数据? – meowmeow 2012-07-26 17:23:11
对不起,我仍然在学习这个网站太哈哈,它不会让我发布回应 - 它只允许我现在发表评论: -/ – meowmeow 2012-07-26 17:24:04