0
XML 코드 :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>
내가 코드 아래 를 사용하여 하위 노드의 listname 및 view 이름에 대한 값을 가지고,
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에 대한 객체를 만들려고 했으므로 노드를 사용하십시오. NI는 각 노드의 값을 얻을 수 foreach 루프를 사용하지만,이에 또한 YAxisFields 및 하위 노드로 부모 노드 을 가지고 있기 때문에 YAxisField 그래서 유일한 방법은하는 XMLNode에 대한 객체의 수를 만들 에있는 한 YAxisFields/YAxisField에 대한 값을 얻을 couldnt한다 아니면 을 수행 할 다른 방법이 있습니까?
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");
있습니까? 일반적으로 이전 API보다 간단합니다 ... (당신이하려는 것을 분명히하지는 않습니다 ...) –
이 태그가 라인 # 2의 시작 태그와 일치하지 않는 방식으로 XML이 유효하지 않습니다. '< ChartConfig>' – MethodMan