Ошибка при добавлении узла XmlNodeType::Attribute к XmlNode
Может кто-нибудь объяснить, что я делаю здесь неправильно, что я получаю эту ошибку:
The specified node cannot be inserted as the valid child of this node, because the specified node is the wrong type.
на последней строке в этом коде?
XmlDocument^ xmlDoc = gcnew XmlDocument();
XmlNode^ xmlNode = xmlDoc->CreateNode(XmlNodeType::Element, "QualifyingProperties", "http://uri.etsi.org/01903/v1.3.2#");
XmlNode^ nodAttribute = xmlDoc->CreateNode(XmlNodeType::Attribute, "Target", "http://namespace.123");
xmlNode->AppendChild(nodAttribute);
Как правильно добавить узел типа XmlNodeType::Attribute в XmlNode? Я знаю, что могу создать XmlAttribute и добавить его в атрибуты, но я хочу выяснить, что не так с тем, как я пытался это сделать.
1 ответ
Решение
Это связано с тем, что по определению атрибуты не являются дочерними элементами других узлов, поэтому их нельзя передать AppendChild
,
Для них есть особое место:
xmlNode->Attributes->SetNamedItem(nodAttribute);