Как вставить данные XML в SQL - PullRequest
0 голосов
/ 26 ноября 2010
<FILE>
<TITLE> Final Fuel Tax Rates </TITLE>
<QUARTER>1Q2010</QUARTER>
<RECORD>
<JURISDICTION ID="#16">AB</JURISDICTION>
<COUNTRY>CAN</COUNTRY>
<FUEL_TYPE>Gasoline</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.3217</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0900</RATE>
<FUEL_TYPE>Special Diesel</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.3217</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0900</RATE>
<FUEL_TYPE>Gasohol</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.3217</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0900</RATE>
<FUEL_TYPE>Propane</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.2323</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0650</RATE>
<FUEL_TYPE>LNG</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.0000</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0000</RATE>
<FUEL_TYPE>CNG</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.0000</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0000</RATE>
<FUEL_TYPE>Ethanol</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.3217</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0900</RATE>
<FUEL_TYPE>Methanol</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.3217</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0900</RATE>
<FUEL_TYPE>E-85</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.3217</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0900</RATE>
<FUEL_TYPE>M-85</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.3217</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0900</RATE>
<FUEL_TYPE>A55</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.3217</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0900</RATE>
<FUEL_TYPE>Biodiesel</FUEL_TYPE>
<RATE COUNTRY="US" RATECHANGE="0">0.3217</RATE>
<RATE COUNTRY="CAN" RATECHANGE="0">0.0900</RATE>
</RECORD>
<RECORD>

Ответы [ 2 ]

0 голосов
/ 27 ноября 2010

решение

XmlDocument _xmlDoc = new XmlDocument();
_xmlDoc.Load(@"C:\Users\AppData\Local\Temp\ry.xml");

string _xml = _xmlDoc.InnerXml;

FILE _fileObj = (FILE)DeSerialize(_xml, typeof(FILE));

if (_fileObj != null && _fileObj.RECORD != null && _fileObj.RECORD.Count > 0)
{
    foreach (FILERECORD _record in _fileObj.RECORD)
    {
        _record.JURISDICTION[0].Value;
        int i = 0;
        foreach (FILERECORDFUEL_TYPE _fuelType in _record.FUEL_TYPE)
        {   }
    }
}
0 голосов
/ 26 ноября 2010

Некоторые базы данных SQL поддерживают тип XML (вы можете поместить немного XML в некоторые ячейки).PostgreSQL имеет этот пример.В стандарте SQL / XML есть некоторые аспекты XML в базах данных.В любом случае, вы можете захотеть сохранить XML как большой двоичный объект (или событие как большую строку ...).Я не знаю, это то, что вы спрашиваете.

Если вы хотите выполнять запросы к XML, некоторые базы данных SQL могут извлекать информацию из типов XML с помощью XPath.В противном случае вам придется отобразить данные в базе данных, что более вероятно, чем вы хотите, но на самом деле не связано с XML, а связано с дизайном схемы SQL.Было бы более логично сгруппировать каждый fuel_type и его скорость в элементе «fuel».

...