0

我的问题有点典型,我对使用 xml 很陌生。请查看以下代码:

    XmlDocument xDoc = new XmlDocument();
    xDoc.Load(myxml);

    Response.Write("<p><strong>First Result</strong><br/>");

    for (int nodeCount = 0; nodeCount < xDoc.ChildNodes.Count; nodeCount++)
    {
        Response.Write(xDoc.ChildNodes[nodeCount].Name + ":");
        Response.Write(xDoc.ChildNodes[nodeCount].InnerXml + "<br/>");
    }

    Response.Write("</p>");

..我在aspx页面中得到的输出如下:

First Result
xml:
Response:OK122.160.37.198ININDIAWEST BENGALKOLKATA70015522.569788.3697+05:30

我想要其中的值 'WEST BENGAL' 和 'KOLKATA'。我无法以 xml 格式读取/写入它,以便我可以获取所需的节点及其值。怎么做?

4

2 回答 2

1

您可以使用 XPath 搜索 XML。使用你的“xDoc”变量

XPathDocument doc = new XPathDocument(XmlReader(xDoc));
XPathNavigator nav = doc.CreateNavigator();
XPathExpression exprName = nav.Compile(xPathName);
XPathNodeIterator iteratorName = nav.Select(exprName)
于 2013-11-13T11:24:30.690 回答
0

您可以Descendants()在自身上使用该函数XDocument,请考虑以下示例:

(注意 - 对您的数据的外观做出了假设)

using System.Xml.Linq;
static void Main()
{
   var xml = "<Data><ININDIA>WEST BENGAL</ININDIA><ININDIA>KOLKATA</ININDIA></Data>";
   var xd = XDocument.Parse(xml);
   //get all `XElement` objects with the name "ININDIA"
   foreach (var e in xd.Root.Descendants()
        .Where(e=>e.Name.LocalName=="ININDIA"))
    {
      Console.WriteLine(e.Value);
    }
}

会产生

WEST BENGAL
KOLKATA
于 2013-11-13T11:32:30.510 回答