я программно создать узел, однако один из атрибутов выходит по-другому, чем то, что я указал в коде:C атрибут # XML создается неправильно
XmlNode xResource = docXMLFile.CreateNode(XmlNodeType.Element, "resource", docXMLFile.DocumentElement.NamespaceURI);
XmlAttribute xRefIdentifier = docXMLFile.CreateAttribute("identifier");
XmlAttribute xRefADLCP = docXMLFile.CreateAttribute("adlcp:scormtype");
XmlAttribute xRefHREF = docXMLFile.CreateAttribute("href");
XmlAttribute xRefType = docXMLFile.CreateAttribute("type");
xRefIdentifier.Value = "RES-" + strRes;
xRefADLCP.Value = "sco";
xRefHREF.Value = dataRow["launch_url"].ToString().ToLower();
xRefType.Value = "webcontent";
xResource.Attributes.Append(xRefIdentifier);
xResource.Attributes.Append(xRefADLCP);
xResource.Attributes.Append(xRefHREF);
xResource.Attributes.Append(xRefType);
Это заканчивает создание линии, как в следующем. Обратите внимание, что «adlcp: scormtype» превратился в «scormtype», который не является тем, что я указал. Любые идеи, как заставить его показать, что я ввел в CreateAttribute?
<resource identifier="RES-CDA68F64B849460B93BF2840A9487358" scormtype="sco" href="start.html" type="webcontent" />
Я попытался добавить это: XmlAttribute xRefADLCP = docXMLFile.CreateAttribute ("adlcp", "scormtype", docXMLFile.DocumentElement.NamespaceURI); проблема в том, что он добавил еще один атрибут для xmlns: adlcp = "http://www.imsproject.org/xsd/imscp_rootv1p1p2". Любые идеи, как избавиться от него? – user1366062
Вы переопределяете пространство имен. Из другого комментария к корню - 'xmlns: adlcp =" adlnet.org/xsd/adlcp_rootv1p2 ";', из этого - 'xmlns: adlcp =" imsproject.org/xsd/imscp_rootv1p1p2 "'. До вас, чтобы решить, что вы хотите, если пространства имен одинаковы, я считаю, что не будет дублированного атрибута xmlns для дочернего элемента. –
спасибо! Я поменял его на матч, и он ушел. – user1366062