簡體   English   中英

如何使用c#檢索特定的xml標記值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM