2017-01-17 2 views
0

ich diese Zeichenfolge haben als XML strukturiert:Parsen von XML-String und werde Wurzelelement Fehler beseitigen

<damp fullmedia=""> 
    <mediaitem> 
    <img id="1119" version="29a5623f-d41c-4418-97b7-3cea8579ffd8" parentid="1052" level="2" writerid="0" nodetype="1032" template="0" sortorder="2" createdate="2016-11-30T10:09:40" updatedate="2016-11-30T10:09:40" nodename="2016-11-25_1251411957-277" urlname="2016-11-25_1251411957-277" writername="admin" nodetypealias="Image" path="-1,1052,1119"> 
     <umbracofile>/media/1013/2016-11-25_1251411957-277.jpg</umbracofile> 
     <umbracowidth>2598</umbracowidth> 
     <umbracoheight>1732</umbracoheight> 
     <umbracobytes>350613</umbracobytes> 
     <umbracoextension>jpg</umbracoextension>  
    </img> 
    </mediaitem> 
</damp> 

Ich möchte den Wert der Eigenschaft „umbracofile“ extrahieren, so dass ich tat dies:

var stringAsXml = "<damp fullmedia="">...."; 
var xmlDoc = new XmlDocument(); 
var imageUrl = xmlDoc.SelectSingleNode("//mediaItem/img/umbracoFile").InnerText; 

Der Code funktioniert gut, aber ich habe den Fehler "Root-Element fehlt". Da ich nur einen Knotenwert analysieren und extrahieren möchte, wie kann ich diesen Fehler loswerden?

+0

'Der Code funktioniert gut, aber ich habe die error' ich d argumentieren, dass diese Aussagen tatsächlich widersprüchlich sind. Der Fehler könnte mit der Tatsache zusammenhängen, dass Sie nach dem Knoten 'Image' suchen, wenn der Knoten tatsächlich' img' ist. – Jonesopolis

+0

Entschuldigung, mein Fehler, der Knoten find/img/not/Image/ – Ras

+0

Oh, Ihr 'img'-Tag ist auch nie geschlossen. Ich weiß nicht, ob das ein Tippfehler ist – Jonesopolis

Antwort

1

Der Code funktioniert gut, aber ich habe den Fehler "Root-Element fehlt".

Dann funktioniert der Code nicht so gut, denke ich? Dies sollte funktionieren:

var stringAsXml = "<damp fullmedia=\"\"><mediaitem><img id=\"1119\" version=\"29a5623f-d41c-4418-97b7-3cea8579ffd8\" parentid=\"1052\" level=\"2\" writerid=\"0\" nodetype=\"1032\" template=\"0\" sortorder=\"2\" createdate=\"2016-11-30T10:09:40\" updatedate=\"2016-11-30T10:09:40\" nodename=\"2016-11-25_1251411957-277\" urlname=\"2016-11-25_1251411957-277\" writername=\"admin\" nodetypealias=\"Image\" path=\"-1,1052,1119\"><umbracofile>/media/1013/2016-11-25_1251411957-277.jpg</umbracofile><umbracowidth>2598</umbracowidth><umbracoheight>1732</umbracoheight><umbracobytes>350613</umbracobytes><umbracoextension>jpg</umbracoextension></img></mediaitem></damp>"; 
var xmlDoc = new XmlDocument(); 
xmlDoc.LoadXml(stringAsXml); 
var imageUrl = xmlDoc.SelectSingleNode("damp/mediaitem/img/umbracofile").InnerText; 

Und das auch (wenn Sie mehrere <umbracofile> Knoten haben und wollen die erste wählen):

var imageUrl = xmlDoc.SelectSingleNode("//umbracofile").InnerText; 
Verwandte Themen