-1
Aşağıdaki, data.xml dosyasını ayrıştırır (aşağıdaki örneğe bakın). Gövde değerini iyi çekebilirim ama alıcı alanla ilgili bir sorun yaşıyorum. Aynı kodu kullanmadan önce diğer alt öğelerin içinden geçtim ama burada ne yapıyorum emin değilim.C# özü ile <string> değeri XML öğesinden
using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml.Linq;
namespace MessagesRestore
{
public class ParseXml
{
public static void ExtractMessages()
{
string recepients = "";
string body = "";
foreach (XElement level1Element in XElement.Load(@"Data.xml").Elements("Message"))
{
body = level1Element.Element("Body").Value; //Works
foreach (XElement level2Element in level1Element.Elements("Recepients"))
{
recepients = level2Element.Element("string").Value; //Fails
}
}
}
}
}
data.xml dosyası: Eğer XML düzeltmek eğer
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfMessage>
<Message>
<Recepients>
<string>5555555555</string>
</Recepients>
<Body>blah blah blah</Body>
<IsIncoming>false</IsIncoming>
<IsRead>true</IsRead>
<Attachments />
<LocalTimestamp>130979714416748889</LocalTimestamp>
<Sender />
</Message>
<Message>
<Recepients>
<string>5555555555</string>
</Recepients>
<Body>yaba daba do</Body>
<IsIncoming>false</IsIncoming>
<IsRead>true</IsRead>
<Attachments />
<LocalTimestamp>130979673444601802</LocalTimestamp>
<Sender />
</Message>
<Message>
</ArrayOfMessage>
Teşekkür ederim, Greg
benim "çaylak" hata buldum. Örnek XML'im ana dosyanın yalnızca küçük bir kısmıydı, dolayısıyla yanlışlıkla kopyaladığım ekstra açılış mesajı. Bazı "reseptörler" unsurları neyi test etmemişti? Doğrulama ekledikten sonra hatam gitti. Burada yanlış alarm için özür dilerim. : | Yardımınız için teşekkürler. – CaptainChaos