-3

xml ファイルを検索したい。構造は次のようになります。

<AForetag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Place ID="1006">
        <Foretag>
            <Epost>info@abc123.se</Epost>
            <Namn>Abe</Namn>
            <Ort>Abc123</Ort>
            <Adress>Abc123</Adress>
            <Postnummer>Abc123</Postnummer>
            <Landskap>Abc123</Landskap>
            <Telefon>Abc123</Telefon>
            <Medlemskap>Abc123</Medlemskap>
        </Foretag>
        <Foretag>
            <Epost>def456</Epost>
            <Namn>def456</Namn>
            <Ort>def456</Ort>
            <Adress>def456</Adress>
            <Postnummer>def456</Postnummer>
            <Landskap>def456</Landskap>
            <Telefon>def456</Telefon>
            <Medlemskap>def456</Medlemskap>
        </Foretag>
    </Place>
</Aforetag>

そして、 Element を検索したいと思い<Landskap>ます。そして、取得して一致させる場合は、他のすべての要素、Epost、Namn、Ort、Adress、Postnummer、Landskap、Telefon、Medlemskap を選択する必要があります。配列に入れたい情報。

私はこれを試しました:

var aforetag = from foretag in doc.Descendants("Place")
                       where foretag.Attribute("ID").Value == "1006"
                       select foretag;


var landskap = aforetag.Elements("Foretag")
                       .Descendants()
                       .Where(x => x.Element("Landskap")
                       .Value
                       .Contains(s)
                       .Descendants()
                       .Select(c => (string)c)
                       .ToArray();
4

2 に答える 2

0
var landskap = aforetag.Elements("Foretag")
                       .Where(e=>e.Element("Landskap").Value.Contains(s))
                       .Select(e=>e.Elements().Select(x=>x.Value).ToArray());
//the result is an IEnumerable<string[]> for the matched keyword s
于 2013-10-15T08:57:15.690 に答える
0

コードの形式が正しくありません。これを VS にコピーすると、エラーがいくつかあります。1 つ以上のエラーを修正してください!...

そして最も重要なのは、開始タグと終了タグが一致していないため、XML が XML ではないということです。さらに、他にも問題があります。

これらすべてを修正してください。きっと役立つでしょう。

于 2013-10-15T09:13:51.243 に答える