我正在填充XML结构(使用VB.NET)以传递给Web服务。以下是如何填充一块结构,并以类似的方式填充结构的其余部分:
Private Shared Function GetSpecialties(ByVal specialties As System.Data.Linq.EntitySet(Of Provider.provider_specialty)) As XElement
Return _
New XElement( _
"provider_specialties", _
From s In specialties _
Select New XElement( _
"provider_specialty", _
New XElement("external_provider_specialty_id", s.external_provider_specialty_id), _
New XElement("record_type_id", s.record_type_id), _
New XElement("effective_date", s.effective_date), _
New XElement("termination_date", s.termination_date), _
New XElement("specialty_code", s.specialty_code)))
End Function
结构的某些部分最多可包含30个元素。每个记录创建大约需要0.1秒,并且需要创建大约35,000条记录,因此整个过程大约需要一个小时。
有没有更快的方法来填充像这样的XML结构?
答案 0 :(得分:2)
如果您只是想创建输出XML字符串,那么您应该使用XmlTextWriter
(通过StringBuilder
?)来生成XML,从而节省足够的时间。这样可以避免实例化许多新对象,只需将所需内容放入流中即可。