0
请有人提供一些关于从XML列中提取某些值的最有效方法的指导吗?我试过在case语句中使用子字符串和charindex,但是这变得非常混乱,并且不是最好的表演者。我会认为有一个XML功能可以更好地工作,但是很难在网上找到任何使用XML的例子;从SQL Server中提取XML的值
<pro:Import xmlns:pro="http://thenamespace/">
<pro:Control DatabaseName="varchar" UserName="varchar" Password="varchar" Company="varchar" Version="varchar" ErrorHandlingMode="varchar" />
<pro:Invoice RegisterInvoiceEvenIfParentOrdersAreInvalid="Bool" Tray="Varchar" Template="varchar" Supplier="varchar" SupplierInvoiceNumber="int" InvoiceDate="datetime" GrossValue="decimal" TaxValue="decimal" ImageReference="uniqueidentifier">
<pro:References>
<pro:Reference Code="varchar" Value="datetime" />
<pro:Reference Code="varchar" Value="varchar" />
</pro:References>
<pro:ParentOrders>
<pro:ParentOrder OrderNumber="varchar" />
</pro:ParentOrders>
<pro:TaxDetails>
<pro:Tax Band="varchar" Code="varchar" GrossValue="decimal" TaxValue="decimal" />
</pro:TaxDetails>
<pro:Comments>
<pro:Comment>varchar</pro:Comment>
</pro:Comments>
</pro:Invoice>
我想提取会有所不同的值,也将在XML。这只是一个例子,但有时候我想为某些XML提取的值在别人中不存在。
例子:
有可能永远是一个Supplier="xxxx"
但不是SupplierInvoiceNumber="xxxx"
,它的位置会有所不同。
为了讨论各种情形,虽然,可以说这个练习,我只是想拔出
Supplier="varchar"
& SupplierInvoiceNumber="int"
感谢所有:)
〜d
非常感谢!我尝试过使用xml.Value,但我试图按照我在网上找到的东西(/ ns:Import/ns:Invoice)[1]','varchar(max)')而这返回的意见,而不是。感谢您的快速反应! –