【发布时间】:2013-01-23 07:33:50
【问题描述】:
-
Xml 代码:
<Report> <ChartData> <ListName>area</ListName> <ViewName>Selecte List</ViewName> <YAxisFields> <YAxisField> <Name>Scheduled Start Date/Time</Name> <DataType>DateTime</DataType> <Category>Year</Category> </YAxisField> </YAxisFields> <XAxisFields> <XAxisField> <Name>Release Type</Name> <DataType>String</DataType> <Category> </Category> </XAxisField> </XAxisFields> </ChartConfig> </Report> -
我通过使用 下面的代码,
XmlDocument doc = new XmlDocument(); doc.Load("XmlFileName"); XmlNodeList node = doc.SelectNodes("Report/ChartData"); foreach (XmlNode xn in node) { xn["ListName"].InnerXml = chartname; xn["ViewName"].InnerXml = SelectedList; **xn["YAxisFields/YAxisField"].InnerXml = yaxisfield; //not working, need to get the value for this xml node,need help in this line dono how to proceed** doc.Save("XmlFilename"); } -
首先我尝试使用这样的代码而不是上面的代码,在这个 我需要创建多个对象才能获取每个对象的值 节点,所以我尝试通过为 xmlnodelist 创建对象然后我使用 foreach 循环以获取每个节点的值,但在此无法获取 YAxisFields/YAxisField 的值,因为它也有父节点 作为 YAxisFields 和子节点作为 YAxisField 所以只有办法 为 xmlnode 创建对象数量或有其他方法吗 这个?
XmlDocument doc = new XmlDocument(); doc.Load("XmlFileName"); XmlNode Listnode = doc.SelectSingleNode("Report/ChartData/ListName"); XmlNode Viewnode = doc.SelectSingleNode("Report/ChartData/ViewName"); if (Listnode != null) { Listnode.InnerXml = chartname; Viewnode.InnerXml = SelectedList; ; doc.Save("XmlFileName");
【问题讨论】:
-
您可以使用 LINQ to XML 代替吗?它通常比旧的 API 更简单...(也不清楚您要做什么...)
-
您的 XML 无效,因为此标记与第 2 行的起始标记不匹配
</ChartConfig>