1

xml 構造を文字列abcdに格納しました。

    string abcd="<xmlstruct>
    <test>
        <name>testname</name>
        <address>testaddress</address>
        <subject>testsub<subject>
    </test>

    <test1>
        <name>testname1</name>
        <address>testaddress1</address>
        <subject>testsub<subject>
    </test1>

    <test2>
        <name>testname2</name>
        <address>testaddress2</address>
        <subject>testsub2<subject>
    </test2>

    <test3>
        <name>testname3</name>
        <address>testaddress3</address>
        <subject>testsub3<subject>
    </test3>


    </xmlstruct>";

次のような文字列から xml 値を取得しました。

var xElem = XElement.Parse(abcd);
string getname =  xElem.Element("test").Element("name").Value;
string getname1 = xElem.Element("test1").Element("name").Value;
string getname2 = xElem.Element("test2").Element("name").Value;
string getname3 = xElem.Element("test3").Element("name").Value;

私の質問は、「ループを作成してテスト、テスト 1、テスト 2、テスト 3 の値を取得する方法はありますか?」ということです。

4

1 に答える 1

2

の選択"test0"は少し不規則ですが、これでうまくいくはずです:

for (int i = 0; i < N; i++)
{
   string suffix = i > 0 ? i.ToString() : "";
   string getname =  xElem.Element("test"+suffix).Element("name").Value;
   ...
}

しかし、おそらく次のような、より優れた XML 構造を調べる必要があります。

<test id="1">
    <name>testname2</name>
    <address>testaddress2</address>
    <subject>testsub2<subject>
</test>
于 2012-10-15T10:15:40.057 に答える