웹에서 XML 파일을 구문 분석하고 요소를 데이터베이스에 저장하고 있습니다. 모든 변수는 쉽게하기 위해 문자열 유형입니다. 7 개 필드 중 5 개를 저장할 수 있습니다. 7 개를 모두 구문 분석하려고하면 80 개의 레코드 만 얻고 작동하지 않는 두 줄에 주석을 달면 17000 개의 레코드를 얻습니다. 89 개 기록에서 멈추는 이유를 아는 사람 있나요?
다음은 코드입니다.
var xml = new XmlDocument();
xml.Load("http://www.systembolaget.se/Assortment.aspx?Format=Xml");
XmlNodeList documentNodeList = xml.DocumentElement.SelectNodes("/artiklar/artikel");
IList<Systembolaget> whiskies = new List<Systembolaget>();
if (documentNodeList.Count > 0)
{
foreach (XmlNode row in documentNodeList)
{
Systembolaget sb = new Systembolaget();
sb.ArtikelId = (string)row.SelectSingleNode("Artikelid").InnerText;
sb.SaljStart = (string)row.SelectSingleNode("Saljstart").InnerText;
sb.Ursprunglandnamn = (string)row.SelectSingleNode("Ursprunglandnamn").InnerText;
sb.VaruNamn = (string)row.SelectSingleNode("Namn").InnerText + " " + row.SelectSingleNode("Namn2").InnerText;
//sb.Argang = (string)row.SelectSingleNode("Argang").InnerText;
sb.Alkoholhalt = (string)row.SelectSingleNode("Alkoholhalt").InnerText;
sb.Volym = (string)row.SelectSingleNode("Volymiml").InnerText;
sb.Pris = (string)row.SelectSingleNode("Prisinklmoms").InnerText;
/*
if (row.SelectSingleNode("Varugrupp").InnerText.StartsWith("Whisky"))
{
var rowVarugrupp = (string)row.SelectSingleNode("Varugrupp").InnerText;
sb.Varugrupp = rowVarugrupp;
}*/
whiskies.Add(sb);
ISystembolagetRepository sbDao = daoFactory.GetSystembolagetRepository();
sbDao.SaveOrUpdate(sb);
<Varugrupp>
81 번째 기록에서 누락되었습니다. Linq to Xml을 사용하여 Xml을 읽어 보셨습니까? 작업하는 것이 조금 더 쉽다고 생각합니다.
XDocument document = XDocument.Load("http://www.systembolaget.se/Assortment.aspx?Format=Xml");
List<Systembolaget> whiskies = new List<Systembolaget>();
foreach(XElement element in document.Element("artiklar").Elements("artikel"))
{
Systembolaget sb = new Systembolaget();
sb.ArtikelId = element.Element("Artikelid").Value;
sb.SaljStart = element.Element("Saljstart").Value;
sb.Ursprunglandnamn = element.Element("Ursprunglandnamn").Value;
sb.VaruNamn = element.Element("Namn").Value + element.Element("Namn2").Value;
sb.Argang = element.Element("Argang").Value;
sb.Alkoholhalt = element.Element("Alkoholhalt").Value;
sb.Volym = element.Element("Volymiml").Value;
sb.Pris = element.Element("Prisinklmoms").Value;
if (element.Element("Varugrupp") != null && element.Element("Varugrupp").Value.StartsWith("Whisky"))
{
sb.Varugrupp = element.Element("Varugrupp").Value;
}
whiskies.Add(sb);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다