Как загрузить XML в DataTable? - PullRequest
0 голосов
/ 10 января 2011

Я хочу загрузить XML-файл в Интернете в DataTable в C #.XML загружается из http://rates.fxcm.com/RatesXML и выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<Rates>
    <Rate Symbol="EURUSD">
        <Bid>1.29174</Bid>
        <Ask>1.29198</Ask>
        <High>1.29407</High>
        <Low>1.28723</Low>
        <Direction>-1</Direction>
        <Last>14:56:48</Last>
    </Rate>
    <Rate Symbol="USDJPY">
        <Bid>82.862</Bid>
        <Ask>82.885</Ask>
        <High>83.293</High>
        <Low>82.847</Low>
        <Direction>1</Direction>
        <Last>14:56:47</Last>
    </Rate>
    <!-- More like the above -->
</Rates>

Могу ли я использовать метод ReadXml класса DataTable для чтения XML,или мне нужен какой-то http-запрос, чтобы сначала получить его в строку?

РЕДАКТИРОВАТЬ: я только что написал следующее

public DataTable GetCurrentFxPrices(string URL)
{
    DataSet ds = new DataSet("fxPrices");
    ds.ReadXml(URL);

}

и пытается прочитать данныено я за корпоративным брандмауэром.Я действительно не знаю, как обойти это.Я получаю эту ошибку:

System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required.

В Firefox у меня установлен HTTP-прокси с номером порта.Могу ли я установить это где-нибудь в моем приложении?

Ответы [ 2 ]

3 голосов
/ 10 января 2011

Да, вы можете использовать ReadXml, если XML представлен в формате одной таблицы.

Он может не входить в ожидаемый вами формат, поэтому вам может потребоваться немного изучить структуру набора данных, но он работает просто отлично.

Как правило, при загрузке данных из XML-файла в Datatable я сначала считывал их в DataSet и был уверен, что он не создает более одной таблицы. Любое вложение в XML обычно приводит к созданию нескольких таблиц в наборе данных.

Этот конкретный файл, однако, выглядит так, как будто он отлично импортируется в одну таблицу.

1 голос
/ 10 января 2011

Это вопрос, отличный от оригинала, поэтому ответить на измененный вопрос ...

.NET обычно использует настройки вашей системы. Я полагаю, что настройки сетевого прокси по умолчанию настроены в Internet Explorer. Другими словами, если вы установите его в IE, то Windows в целом будет использовать эти настройки.

Я бы попробовал установить прокси в Internet Explorer и посмотреть, может ли ваше приложение получить к нему доступ из вашего приложения.

Я нашел другую возможность здесь: http://www.musicalnerdery.com/net-programming/reading-an-xml-document-from-behind-a-proxy.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...