I가이 코드를 사용하여 만든 기존 XmlNodeList :기존 XmlNodeList에 새 XmlElement를 어떻게 추가합니까?
XmlNodeList nodes = xmlDocument.SelectNodes(XPathStatement);
내가 위의 목록에 XMLELEMENT을 추가 할 수 있습니다. 이 작업을 허용하는 nodes
에 대한 방법이 없습니다. XmlElement를 XmlNodeList에 어떻게 추가합니까?
I가이 코드를 사용하여 만든 기존 XmlNodeList :기존 XmlNodeList에 새 XmlElement를 어떻게 추가합니까?
XmlNodeList nodes = xmlDocument.SelectNodes(XPathStatement);
내가 위의 목록에 XMLELEMENT을 추가 할 수 있습니다. 이 작업을 허용하는 nodes
에 대한 방법이 없습니다. XmlElement를 XmlNodeList에 어떻게 추가합니까?
나는 XmlElement
을 XmlNodeList
에 추가하는 완벽한 방법이 없기를 바랍니다. XmlElementList
, XmlChildNodes
및 XPathNodeList
:
나는 추상 클래스 XmlNodeList
의 소스와 내부 후손을 검토 한 결과. 메서드가 전혀 Add
없습니다.
XmlNodeList
의 다른 하위 항목은 CanonicalXmlNodeList
입니다. IList
을 구현하며 Add
메서드를 포함합니다. 그러나 SelectNodes
메서드가 XPathNodeList
인스턴스를 반환하기 때문에 도움이되지 않습니다.
var nodeList = xml.SelectNodes("/");
int dummy = nodeList.Count; // IMPORTANT! Fills the private list when called
Assembly asm = typeof(XmlDocument).Assembly;
var t = asm.GetType("System.Xml.XPathNodeList");
var listField = t.GetField("list", BindingFlags.NonPublic | BindingFlags.Instance);
List<XmlNode> list = (List<XmlNode>)listField.GetValue(nodeList);
list.Add(...); // <- the goal!
당신은 다음 새 요소를 추가 보통 징수로 변환해야합니다 (SelectNodes
방법으로 반환)
XPathNodeList
클래스 인스턴스 당신은 액세스 리플렉션을 사용할 수, 민간 분야 List<XmlNode> list
있다 그곳에. 물론 원본 문서에 요소를 추가하지는 않습니다.
using System.Collections.Generic;
var lst = nodes.Cast<XmlElement>().ToList();
lst.Add(elm);