0

実際の XML に変換したい文字列 XML があり、その値を取得します。

私の(文字列)XMLドキュメントは次のようになります。

<Folder>
    <Files>
       <File Id="123" 
        Size="111"
        Name="abc"/>
    </Files>
</Folder> 

これは私がやっていることです:

XmlDocument xml = new XmlDocument();
xml.LoadXml(stringXML);

XmlNodeList xnList = xml.SelectNodes("/Folder/Files");
foreach (XmlNode xn in xnList)
{
     string a = xn["File Id"].InnerText;
}  

ここで、私のxml変数 (XmlDocument) には XML: < Folder>< Files>etc... が「InnerXml」プロパティ内に含まれています。
( xnListXmlNodeList) は< File Id="123" Size="111" Name="abc"/>、その「InnerXml」プロパティの下にあります。
XmlNode は xnListとxnまったく同じなので、xn["File Id"].

XML ファイルから情報を取得するにはどうすればよいですか?

4

3 に答える 3

0

あなたが何をしようとしているのかははっきりしていませんが、LINQ to XML を使用することをお勧めします - 物事がより簡単になります:

var doc = XDocument.Parse(stringXML);
// Or doc.Root.Element("Files").Elements("File")
foreach (var file in doc.Descendants("File")) 
{
    int id = (int) file.Attribute("Id");
    int size = (int) file.Attribute("Size");
    string name = (string) file.Attribute("Name");
    // Do whatever you need...
}

または、単に情報を収集したい場合:

var doc = XDocument.Parse(stringXML);
var query = doc.Descendants("File").Select(file => new { 
                                Id = (int) file.Attribute("Id"),
                                Size = (int) file.Attribute("Size"),
                                Name = (string) file.Attribute("Name")
                            });
于 2013-07-28T11:28:28.317 に答える
0

これは正しい方法です:

        var stringXML = "<Folder><Files><File Id=\"123\" Size=\"111\" Name=\"abc\"/></Files></Folder> ";
        XmlDocument xml = new XmlDocument();
        xml.LoadXml(stringXML);

        XmlNodeList xnList = xml.SelectNodes("/Folder/Files");
        foreach (XmlNode xn in xnList)
        {
            string a = xn["File"].Attributes["Id"].Value;
        }  
于 2013-07-28T11:28:39.523 に答える
0

Id の属性値を直接取得することはできません。attribute プロパティを使用して、その特定の属性値を取得できます。

 XmlNodeList xnList = xml.SelectNodes("/Folder/Files");
    foreach (XmlNode xn in xnList)
    {
         string a = xn.Attributes["Id"].Value; // Modify likewise
    }
于 2013-07-28T11:32:29.427 に答える