1

xmlファイルを1つの文字列オブジェクトに保存します。たとえば、xml構造をローカル変数文字列abcdにc#で保存しました。

 <structure>
    <a>Test Name</a>
    <e>test address</e>
    <c>
       <c1>yyyy<c1>
       <c2>xxxx</c2>
    </c>
    </structure>

c#を使用してこのxml文字列を読み取り(解析)し、c#を使用してタグa、タグc1、タグc2の値をローカル変数に格納する方法。

私はのように試しました

        XmlDocument xmldoc = new XmlDocument();
        xmldoc.LoadXml(abcd);

        XmlElement element = (XmlElement)xmldoc.GetElementById("a");

しかし、null値を取得します。xml構造から値を読み取り、c#を使用してローカル変数に格納する方法は?

4

7 に答える 7

3

LINQtoXMLを使用できます。

 var xDoc = XDocument.Parse(xml);

 var a = xDoc.Descendants("a").First().Value;
 var c1 = xDoc.Descendants("c1").First().Value;
 var c2 = xDoc.Descendants("c2").First().Value;
于 2012-10-11T11:42:37.783 に答える
3

Linq2Xmlの方がはるかに使いやすいです。

var xElem = XElement.Parse(abcd);
var a = xElem.Element("a").Value;
var c = xElem.Element("c").Element("c1").Value;
于 2012-10-11T11:45:10.907 に答える
0

とても近い!これに変更します:

XmlDocument xmldoc = new XmlDocument(); 
xmldoc.LoadXml(abcd); 

XmlElement element = xmldoc.Root.Element("a").Value;
于 2012-10-11T11:43:52.420 に答える
0
string test = " <structure><a>Test Name</a><e>test address</e><c><c1>yyyy</c1><c2>xxxx</c2></c></structure>";

        DataSet dataSet = new DataSet();

        dataSet.ReadXml(new StringReader(test));
        DataTable dt11 = new DataTable();
        DataTable dt12 = new DataTable();
        //return single table inside of dataset
        if (dataSet.Tables.Count > 1)
        {
            dt11 = dataSet.Tables[0];
            dt12 = dataSet.Tables[1];
        }
于 2012-10-11T11:41:06.723 に答える
0

LINQ to XMLをもうご覧になりましたか?そうでない場合は、http://msdn.microsoft.com/en-us/library/bb387098.aspxのリファレンスを参照してください。

于 2012-10-11T11:41:44.977 に答える
0

xmlドキュメント内のすべての異なるタグにアクセスしようとしていることを理解している場合は、のGetElementsByTagName代わりにを使用する必要がありGetElementByIdます。これXmlNodeListにより、そのタグ名を持つすべてのノードを含むオブジェクトが返され、Firstを次のように取得できます。NodeList.Item(0).InnerXml;

于 2012-10-11T11:45:13.360 に答える
0

受け入れられた回答でXDocumentクラスを使用するには、以下を追加する必要があります。

using System.Xml.Linq;

*ソリューションエクスプローラーから、「参照」を見つけます
*「参照の追加」を右クリックします*
XMLのアセンブルを検索(Ctrl E)
*xml.lingアイテムを選択します*
左側に表示されるチェックボックスをクリックします
*OKを選択します

于 2016-10-01T15:14:20.803 に答える