5

次の XML ファイルがあります。この XML ファイルを読み取る最良の方法を知りたいです。

<MyFile> 
  <Companies> 
    <Company>123</Company> 
    <Company>456</Company>
    <Company>789</Company> 
  </Companies> 
</MyFile>

出力として、「123,456,789」のような値のコレクションが必要です。または、文字列の配列[]にすることもできます

Linq を xml に使用できますか? どのように?

4

6 に答える 6

11
var xdoc = XDocument.Load(PATH_TO_FILE);
var companies = xdoc.Descendants("Company").Select(c => (string)c).ToArray();

これにより、が得られますstring[]

于 2012-06-27T11:25:12.617 に答える
6

LINQ to XMLを使用して、含めるusing System.Xml.Linq;

   XDocument xmlDoc = XDocument.Load("yourfile.xml");
   var test = xmlDoc.Descendants("Companies").Elements("Company").Select(r => r.Value).ToArray();
   string result = string.Join(",", test);

出力は次のようになります。

123,456,789

于 2012-06-27T11:25:45.720 に答える
4

データセットでは、xml ファイルを読み取ることができます

以下は、DataSet で XML ファイルを読み取るためのコード行です。

DataSet dsMenu = new DataSet(); //Create Dataset Object

dsMenu.ReadXml("XMLFILENAME.XML"); // Read XML file in Dataset

DataTable dtXMLFILE// Create DatyaTable object

dtXMLFILE= dsMenu.Tables[0]; // Store XML Data in Data Table 
于 2012-06-27T12:01:22.343 に答える
3
string pathToXmlFile = @"C:\test.xml";
XElement patternDoc = XElement.Load(pathToXmlFile);
List<string> values = new List<string>();
foreach (var element in patternDoc.Elements("Companies").Elements("Company"))
{
   values.Add(element.Value);
}
于 2012-08-15T06:53:36.003 に答える
3
var xmlStr=@"<MyFile> 
  <Companies> 
    <Company>123</Company> 
    <Company>456</Company>
    <Company>789</Company> 
  </Companies> 
</MyFile>";

var xDoc = XDocument.Parse(xmlStr);
var companyIds = xDoc.Descendants("Company").Select(e => (int)e);
于 2012-06-27T11:24:41.880 に答える
2

過去に、私は を使用してXmlReaderおり、問題はありませんでした。

MSDN ドキュメント: http://msdn.microsoft.com/en-us/library/system.xml.xmlreader(v=vs.110).aspx

それは非常に簡単で、ドキュメントはかなりよく書かれています。使用方法の簡単なデモンストレーション:

XmlReader reader = XmlReader.Create(targetFile);

while (reader.Read())
{
    switch (reader.NodeType)
    {
        case XmlNodeType.Element:
            if (reader.Name.Equals("Company")
            {
                // Read the XML Node's attributes and add to string
            }
            break;
    }
}
于 2012-06-27T17:18:31.047 に答える