2013-04-23 69 views
-1

我想要得到的元素RSM的值的元素值:CIIHExchangedDocument/RAM:ID 但是我有多個命名空間和空值的問題(我不能知道,如果請求的元素存在)如何找到XML時,我們有多個命名空間

可以實現這種方式:

XElement invoice = XElement.Load(invoiceStream); 
XNamespace rsm = invoice.GetNamespaceOfPrefix("rsm"); 
XNamespace ram = invoice.GetNamespaceOfPrefix("ram"); 
if ((invoice.Element(rsm + "CIIHExchangedDocument")) != null) 
{ 
    if (invoice.Element(rsm + "CIIHExchangedDocument").Element(ram + "ID") != null) 
    { 
     string id = invoice.Element(rsm + "CIIHExchangedDocument").Element(ram + "ID").Value; 
    } 
} 

,但我認爲使用XPath會適合我的需要更好。我想要做這樣的事情:

invoice.XPathSelectElement("rsm:CIIHExchangedDocument/ram:ID"): 

我需要檢索大量的文檔在不同深度的元素,和我有很多的命名空間。

什麼是實現這個最簡單的whay?執行速度對我來說也很重要。

回答