2010-11-24 18 views
5

Hata alıyorum GetListItems işlevi çağrılıyor ancak Visual Studio 2008 Express'te çalıştığı için Visual Basic 2010 Express:System.Xml.XmlNode - System.Xml.Linq.XElement dönüşümü yapılamıyor

Dim ndQuery As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element, "Query", "") 

    Dim ndViewFields As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "") 
    Dim ndQueryOptions As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "") 

    ndQueryOptions.InnerXml = "<IncludeMandatoryColumns>False</IncludeMandatoryColumns>" & _ 
           "<DateInUtc>True</DateInUtc>" 

    ndViewFields.InnerXml = "<FieldRef Name=""LinkFilename"" />" & _ 
          "<FieldRef Name=""Empresa"" />" & _ 
          "<FieldRef Name=""Puesto"" />" & _ 
          "<FieldRef Name=""Fecha_x0020_Vigente"" />" & _ 
          "<FieldRef Name=""Oferta_x0020_vigente"" />" 

    ndQuery.InnerXml = "" 

    Try 

     Dim ndListItems As XmlNode = IntranetLists.GetListItems(ListUUID, Nothing, _ 
                ndQuery, ndViewFields, Nothing, ndQueryOptions, Nothing) 

ve bu fonksiyon Özür mesleği:

Public Function GetListItems(ByVal listName As String, ByVal viewName As String, ByVal query As System.Xml.Linq.XElement, ByVal viewFields As System.Xml.Linq.XElement, ByVal rowLimit As String, ByVal queryOptions As System.Xml.Linq.XElement, ByVal webID As String) As System.Xml.Linq.XElement 
     Dim inValue As ListasIntranetGureak.GetListItemsRequest = New ListasIntranetGureak.GetListItemsRequest() 
     inValue.Body = New ListasIntranetGureak.GetListItemsRequestBody() 
     inValue.Body.listName = listName 
     inValue.Body.viewName = viewName 
     inValue.Body.query = query 
     inValue.Body.viewFields = viewFields 
     inValue.Body.rowLimit = rowLimit 
     inValue.Body.queryOptions = queryOptions 
     inValue.Body.webID = webID 
     Dim retVal As ListasIntranetGureak.GetListItemsResponse = CType(Me,ListasIntranetGureak.ListsSoap).GetListItems(inValue) 
     Return retVal.Body.GetListItemsResult 
    End Function 
+2

işe yaramıyor ise söyle bize çalışmadığı * yol *. Bkz. Http://tinyurl.com/so-hints –

+0

Gönderdiğiniz ilk kod bölümü nedir? Açıkçası eksik. Hangi hatayı aldığınızı görmek için sorunu yeniden üretemem. –

+0

Örnekte XElement'i XmlNode'a dönüştürüyorsunuz; ama soru XmlNode için XElement sorar ... –

cevap

9

Ben VB 2008 kullanışlı yok ama benim en iyi bildiğim için asla herhangi bir otomatik dönüştürme oldu mu sahiptir (örtülü veya XElement arasında ve XmlNode - LINQ-to-XML, bir DOM'ın büyük ölçüde bir paralel uygulamasıdır; yalnızca birkaç şeyle birlikte (kaynak olarak XmlReader gibi).

Ancak; numaralı sorunu bildiren numaralı makalede, önerebileceğim en iyi şey xml ile çalışmaktır; (Soru başlığı eşleşecek)

XElement el = new XElement("foo", 
    new XAttribute("abc","def"), new XElement("bar")); 
var doc = new XmlDocument(); 
using (var reader = el.CreateReader()) { 
    doc.Load(reader); 
} 
XmlNode node = doc.DocumentElement; // node could also be typed as XmlElement 

ve tekrar geri dönüştürmek için: C# örneği (CreateReader kullanarak string yoluyla gitmek zorunda kalmamak için)

XElement andBackAgain; 
using(var reader = new XmlNodeReader(node)) { 
    andBackAgain = XElement.Load(reader); 
}