현재 올바른 XML 파일의 값을 SQL 데이터베이스로 가져옵니다. 아래는 XML 스 니펫입니다.XDocument 요소 - 태그 제거
<Suppliers>
<SupplierDetails>
<Name>Some Name</Name>
<Logo>my-logo.jpg</Logo>
<ID>4070</ID>
<DateCertified>14/10/2016 00:00:00</DateCertified>
<Description>Some description</Description>
<Brands>Brand1</Brands>
<Brands>Brand2</Brands>
<Brands>Brand3</Brands>
<Brands>Brand4</Brands>
<SubBrands>SubBrand1</SubBrands>
<SubBrands>SubBrand2</SubBrands>
<SubBrands>SubBrand3</SubBrands>
<SubBrands>HVAC</SubBrands>
</SupplierDetails>
</Suppliers>
브랜드 및 하위 브랜드 목록에 문제가 있습니다. 이름, 설명 등의 다른 모든 값은 정상이며 요소 "태그"없이 반환됩니다. 그러나 Brands/SubBrands는 이와 같이 보입니다.
<Brands>Brand1</Brands>
"Brand1"비트가 필요합니다. 난 내 ViewModel에
var model =
from xml in xmlDoc.Descendants("SupplierDetails")
select new SupplierViewModel
{
Name = xml.Element("Name").ToString(),
Logo = xml.Element("Logo").ToString(),
Supplier_Id = (int)xml.Element("ID"),
DateCertified = xml.Element("DateCertified").ToString(),
Description = xml.Element("Description").ToString(),
Brands = (from b in xml.Elements("Brands") select b.ToString()).ToList(),
SubBrands = (from sb in xml.Elements("SubBrands") select sb.ToString()).ToList()
};
그리고 내 뷰 모델을 결합하고있어 어떻게
이는 내가 태그를 제거하는 정규식의 비트를 사용할 수 있습니다 알고 있지만 다른 방법이
public class SupplierViewModel
{
public int Id { get; set; }
// XML Elements
[XmlElement("Name")]
public string Name { get; set; }
[XmlElement("LOGO")]
public string Logo { get; set; }
[XmlElement("ID")]
public int Supplier_Id { get; set; }
[XmlElement("DateCertified")]
public string DateCertified { get; set; }
[XmlElement("Description")]
public string Description { get; set; }
[XmlElement("Brands")]
public List<string> Brands { get; set; }
[XmlElement("SubBrands")]
public List<string> SubBrands { get; set; }
}
이 작업을 진행하는 중 ...?
미리 감사드립니다. :) (
확실하지 사용의
.Value
을 읽을 충분해야한다, 그러나 당신은 B에서 xml.Elements에서 ("브랜드/텍스트 '같은 것을 시도해 볼 수도 있습니다 ")'. – localghost@localghost'Elements()'는 네임 스페이스와 로컬 이름의 조합이지만'XPath'가 아닌'XName'을 기대합니다 ... – Shnugo
Andy,'sql' 태그를 제거하고'C# '를 이것은'sql'과 실제로 관련이없는 것 같습니다. XML을 그대로 데이터베이스에 넘기고 거기에 파쇄하는 접근 방식이 될 수 있습니다. (기본 RDBMS에 따라 다름) ... – Shnugo