我的问题有点典型,我对使用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格式读取/写入此内容,以便我可以获取所需的节点及其值。怎么做?
答案 0 :(得分:1)
您可以使用XPath搜索XML。使用你的“xDoc”变量
XPathDocument doc = new XPathDocument(XmlReader(xDoc));
XPathNavigator nav = doc.CreateNavigator();
XPathExpression exprName = nav.Compile(xPathName);
XPathNodeIterator iteratorName = nav.Select(exprName)
答案 1 :(得分: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