Ошибка при добавлении узла 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);
Другие вопросы по тегам