[英]how to retrieve a particular xml tags value using c#
我需要在xml標簽中讀取特定值的值,我嘗試過我只能找到獲取標簽元素的值,我需要從根元素遍歷到子元素。我有一個選擇我可以直接選擇一個標簽並獲得其價值。
在下面的xml exa中,我需要使用c#從xml獲得123456值。 例如: -
<ForwardActionRequest xmlns:auth="test" xmlns="http://www.test">
<auth:Authentication>
<auth:AuthenticationData>
<auth:AuthenticationKey>test</auth:AuthenticationKey>
<auth:Username>test</auth:Username>
<auth:Password>test</auth:Password>
</auth:AuthenticationData>
</auth:Authentication>
<SearchOrderReference>
<Reference>123456</Reference>
<AllocatedBy>test</AllocatedBy>
<Description>test</Description>
</SearchOrderReference>
您可以使用LINQ to XML:
XDocument doc = XDocument.Load(yourXMLText);
string value = doc.Element("SearchOrderReference").Element("Reference").Value;
請注意,我還沒有測試過這段代碼。
我還鼓勵您在此處閱讀有關LINQ to XML的更多信息。
使用XmlDocument.SelectSingleNode()傳入將描述所需節點的XPath,然后提取值。 在使用名稱空間時使用此原型:
http://msdn.microsoft.com/en-us/library/h0hw012b(v=vs.110).aspx
閱讀有關如何實例化XmlNamespaceManager()並使用相關前綴初始化它(它不需要是xml本身的內容),然后發出以下請求:
XmlNode node = doc.SelectSingleNode("/t:ForwardActionRequest/t:SearchOrderReference/t:Reference");
鑒於您將“t”與“ http://www.test ”相關聯。
您可以將xml內容反序列化為類並直接獲取元素的值,或者可以使用LINQ to XML來檢索元素值,
XDocument doc = XDocument.Load(XMLContent或XMLPath); 字符串= doc.Element( “SearchOrderReference”)元素( “參考”)值。;
從使用VS 2005的帖子中,您可以嘗試從字符串中讀取XML的XML Reader。 這是一個例子。
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
reader.ReadToFollowing("SearchOrderReference");
reader.ReadToFollowing("Reference");
string r = reader.ReadInnerXml();
}
請嘗試以下代碼:
XDocument doc = XDocument.Load(yourXMLText);
var node = xmlDoc.SelectSingleNode("//SearchOrderReference[@Reference='123456']");
然后提取節點的屬性以獲取引用標記的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.