2013-10-18 89 views
0

我在字符串中存儲xml並使用Xdocument我將字符串解析爲xml,我需要獲取xml元素值並使用該值來插入它在分貝。任何幫助,將不勝感激。如何使用Xdocument將xml元素值獲取到字符串

XML:

<ListInventorySupplyResponse xmlns="http://mws.amazonaws.com/FulfillmentInventory/2010-10-01/"> 
- <ListInventorySupplyResult> 
- <InventorySupplyList> 
- <member> 
    <SellerSKU>043859634910</SellerSKU> 
    <FNSKU>X000IA4045</FNSKU> 
    <ASIN>B005YV4DJO</ASIN> 
    <Condition>NewItem</Condition> 
    <TotalSupplyQuantity>10</TotalSupplyQuantity> 
    <InStockSupplyQuantity>10</InStockSupplyQuantity> 
- <EarliestAvailability> 
    <TimepointType>Immediately</TimepointType> 
    </EarliestAvailability> 
    <SupplyDetail /> 
    </member> 
    </InventorySupplyList> 
    </ListInventorySupplyResult> 
- <ResponseMetadata> 
    <RequestId>d50af29d-f203-4efc-a864-1725a59ded97</RequestId> 
    </ResponseMetadata> 
    </ListInventorySupplyResponse> 

代碼:

XDocument xd = XDocument.Parse(a); 
string Sku = xd.Element(); 
var ASIN = xd.Descendants("ASIN"); 
var Condition = xd.Descendants("Condition"); 
var TotalSupplyQuantity = xd.Descendants("TotalSupplyQuantity"); 
+0

我建議你寫多一點的代碼作爲五行本身不能寫入數據庫啓動。 –

+0

是什麼問題。在上面的代碼中收到了什麼錯誤,請分享 – Patel

+0

@patel我只想知道如何將特定的xml節點值設置爲字符串 – Vignesh

回答

1

使用此:

string value = xd.Root.Element("SellerSKU").Value; 
2

您應該使用XML命名空間http://mws.amazonaws.com/FulfillmentInventory/2010-10-01/

var xDoc = XDocument.Parse(xml); 
XNamespace ns = "http://mws.amazonaws.com/FulfillmentInventory/2010-10-01/"; 

var condition = (string)xDoc.Descendants(ns + "Condition").First(); 

OR

您可以在搜索Tag條件任何 XML命名空間

var condition2 = (string)xDoc.Descendants() 
          .First(d => d.Name.LocalName == "Condition"); 

您可以使用XPath獲得條件任何 XML命名空間

var condition3 = (string)xDoc.XPathSelectElement("//*[local-name()='Condition']"); 
+0

查找GetDefaultNamespace()以減少拼寫錯誤。 –

+0

+1用於指定命名空間 – Jowen

相關問題