2011-12-10 88 views
0

我有一個示例XML基於元素讀取XML節點?

<UserSettings> 
    <Source>settings/subscriptions</Source> 
    <DestinationController>UserSettings</DestinationController> 
    <DestinationAction>GetUserPreferenceSettings</DestinationAction> 
</UserSettings> 

使用標籤名稱(UserSettings)的XML的讀數,如下所示進行。

XmlDataDocument xmlDoc = new XmlDataDocument(); 
strFileName = System.Configuration.ConfigurationManager.AppSettings["UrlRoutingPath"].ToString(); 
strFileLocation = HttpContext.Current.Server.MapPath("~/" + strFileName); 

xmlDoc.Load(strFileLocation); 

XmlNodeList xmlNode = xmlDoc.GetElementsByTagName("UserSettings"); 

如何根據元素「來源」我直接讀取(例如對於M Y上面的XML:讀通過傳遞設置/訂閱匹配「源」元素?)我知道它的真正的基礎,但真的很困惑!

+0

您能否重新說明您的問題? – adatapost

+0

嗨AVD,你需要更多信息嗎? – KeenUser

回答

0

我會使用XmlDocument替代,結合SelectSingleNode接受XPath表達式。以下是未經測試:

XmlDocument doc = new XmlDocument(); 
strFileName = [...] 
doc.Load(strFileName); 
sourcetext=doc.SelectSingleNode("/UserSettings/Source").InnerText; 

編輯:

下面是關於如何讓基於源的DestinationController一個粗略的例子。

XmlDocument doc = new XmlDocument(); 
strFileName = [...] 
doc.Load(strFileName); 
dctext=doc.SelectSingleNode("/UserSettings/[Source=\"Your desired source\"]/DestinationController").InnerText; 
+0

謝謝,sourcetext會包含什麼內容? COz的基礎上,我需要閱讀相應的DstinationController和行動,我該怎麼做? – KeenUser

+0

'sourcetext'將包含''標籤及其子項的文本。 –

+0

好吧,有可能獲得基於元素(源)的節點標記(Usersetting)? – KeenUser

1

使用Linq-XML(進口System.Xml.Linq的命名空間)。

XDocument doc = XDocument.Load(filename); 
string value = doc.Root.Element("Source").Value;