C# 如何使用visualc从URL读取XML数据
有1304个关键家庭组 例如: XML格式的季度国民账户 任务是使用id和名称将所有这1304个族合并到一个txt文件中 这是它在txt文件中的外观: QNA |四分之一国民账户 帕特·因德。。。。。C# 如何使用visualc从URL读取XML数据,c#,xml,C#,Xml,有1304个关键家庭组 例如: XML格式的季度国民账户 任务是使用id和名称将所有这1304个族合并到一个txt文件中 这是它在txt文件中的外观: QNA |四分之一国民账户 帕特·因德。。。。。 while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: Co
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
Console.Write(reader.Value);
while (reader.MoveToNextAttribute())
Console.Write(reader.Value + "'");
Console.Write(">");
Console.WriteLine(">");
break;
case XmlNodeType.Text:
Console.WriteLine(reader.Value);
break;
case XmlNodeType.EndElement:
Console.Write("</" + reader.Name);
Console.WriteLine(">");
break;
}
}
<KeyFamily id="QNA" agencyID="OECD">...</KeyFamily>
<KeyFamily id="PAT_IND" agencyID="OECD">...</KeyFamily>
<KeyFamily id="SNA_TABLE11" agencyID="OECD">...</KeyFamily>
<KeyFamily id="EO78_MAIN" agencyID="OECD">
<Name xml:lang="en">
Economic Outlook No 78 - December 2005 - Annual Projections for OECD Countries
</Name>
尝试以下使用xml linq的方法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.IO;
namespace ConsoleApplication108
{
class Program
{
const string XML_FILENAME = @"c:\temp\test.xml";
const string URL = "https://stats.oecd.org/restsdmx/sdmx.ashx/GetDataStructure/all";
const string TEXT_FILENAME = @"c:\temp\test.txt";
static void Main(string[] args)
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.CheckCharacters = false;
//XmlReader reader = XmlReader.Create(XML_FILENAME, settings);
XmlReader reader = XmlReader.Create(URL, settings);
StreamWriter writer = new StreamWriter(TEXT_FILENAME);
while (!reader.EOF)
{
if (reader.Name != "KeyFamily")
{
reader.ReadToFollowing("KeyFamily");
}
if (!reader.EOF)
{
XElement keyFamily = (XElement)XElement.ReadFrom(reader);
List<string> columns = new List<string>();
columns.Add((string)keyFamily.Attribute("id"));
//string agencyID = (string)keyFamily.Attribute("agencyID");
columns.AddRange(keyFamily.Elements().Where(x => x.Name.LocalName == "Name").Select(x => (string)x));
writer.WriteLine(string.Join("|", columns));
}
}
writer.Flush();
writer.Close();
}
}
}
需要知道xml文件的结构。。您可以发布一个链接或显示一个带有root和nodethan的xml示例吗?非常感谢您的帮助!请遵循包含根和节点的xml的链接:xml无效。包含一个符号:渔业研发支出。请参阅Wiki:我更新了使用XML链接的代码。如果从URL调用If,If可以工作,但如果我将XML放入文件中,If将失败。请您解释一下如何仅以英文输出:XML:lang=en?非常感谢你!更改一行:columns.AddRangekeyFamily.Elements.Wherex=>x.Name.LocalName==Name&&stringx.Attributes.First==en.Selectx=>stringx;