在XML中显示FirstChild元素的单个值

时间:2017-03-08 14:09:20

标签: c# xml

拜托,帮帮我吧 我想显示"电子邮件"的价值来自xml。我的语法现在有效,但它显示每个值。我希望能够显示个人(一个)值,如

email: mail@mail.com


My scripts

var xml ="<?xml version='1.0' encoding='UTF-8'?> 
<MemResponse> 
<Phone>2554535</Phone> 
<Email>mail@mail</Email>
<Number>we75546654</Number>
 </MemResponse>";

XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
foreach(XmlNode n in doc.DocumentElement)
{
  string q = n.FirstChild.InnerText;
  Response.Write(q);

}

3 个答案:

答案 0 :(得分:0)

请尝试以下代码:

XmlDocument doc = new XmlDocument();
doc.LoadXml("YOUR_XML_PATH");
XmlNodeList email_hd= doc.GetElementsByTagName("Email");
string email=email_hd[0].InnerText;

答案 1 :(得分:0)

您的代码遍历每个节点并写入该节点的内容。

您似乎想要匹配节点名称,并且只有在其名称为&#34时才写入值;电子邮件&#34;。

如果是这样的情况,请在每个人的内部尝试以下内容:

if(n.Name == "Email") {
    string q = n.FirstChild.InnerText;
               Response.Write(q);
}

或者,您可以使用节点列表。

NodeList nl = doc.GetElementsByTagName("Email");

然后写下来。

加载XML文档时,请使用:

    HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest;
    HttpWebResponse response = request.GetResponse() as HttpWebResponse;

    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(response.GetResponseStream());

答案 2 :(得分:0)

只需通过GetElementsByTagName方法按标签名称选择所有元素。

检查一下:

XmlDocument doc = new XmlDocument();
        doc.LoadXml(xml);
        var myEmails = doc.GetElementsByTagName("Email");

        foreach (XmlNode mail in myEmails)
        {
            string mailText = mail.FirstChild.InnerText;
            Response.Write(mailText);
        }

我是从MSDN

得到的