1

私は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>
4

5 に答える 5

4

LINQ to XML を使用できます。

XDocument doc = XDocument.Load(yourXMLText);
string value = doc.Element("SearchOrderReference").Element("Reference").Value;

このコードはテストしていないことに注意してください。

また、 LINQ to XMLの詳細については、こちらをお読みになることをお勧めします。

于 2013-11-13T09:41:31.893 に答える
0

VS 2005 を使用した投稿から、文字列から XML を読み取る XML リーダーを試すことができます。ここに例があります。

using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
    reader.ReadToFollowing("SearchOrderReference");
    reader.ReadToFollowing("Reference");
    string r = reader.ReadInnerXml();
}
于 2013-11-13T10:01:49.573 に答える
0

次のコードを試してください:

XDocument doc = XDocument.Load(yourXMLText);
var node = xmlDoc.SelectSingleNode("//SearchOrderReference[@Reference='123456']");

次に、ノードの属性を抽出して参照タグの値を取得します。

于 2013-11-13T10:08:32.940 に答える
0

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」に関連付けるとします。

于 2013-11-13T09:56:33.123 に答える