Я добавляю XmlElement в существующий документ, но добавляется дополнительный атрибут. Вот код:
XmlNode manifest = this.getManifestNode ();
XmlElement manifestEntry = _content.CreateElement ("item", _contentPath);
XmlAttribute id = _content.CreateAttribute ("id");
id.Value = "content" + getManifestNodes ().Count;
XmlAttribute href = _content.CreateAttribute ("href");
href.Value = splitPath [splitPath.Length - 1];
XmlAttribute mediaType = _content.CreateAttribute ("media-type");
mediaType.Value = "application/xhtml+xml";
manifestEntry.Attributes.Append (id);
manifestEntry.Attributes.Append (href);
manifestEntry.Attributes.Append (mediaType);
manifest.AppendChild (manifestEntry);
и полученный XML:
<item id="content3" href="test1.html" media-type="application/xhtml+xml" xmlns="/home/jdphenix/epubtest/test/OEBPS/content.opf" />
Где находится
xmlns="/home/jdphenix/epubtest/test/OEBPS/content.opf"
откуда? Путь, который он добавляет, - это местоположение документа на диске, но я не добавляю его в свой код (по крайней мере, это мне известно). Дайте мне знать, если вам нужно узнать больше деталей.
Редактировать: я изменил свой код в соответствии с предложением Филбурта и изменил
XmlElement manifestEntry = _content.CreateElement ("item", _contentPath);
до
XmlElement manifestEntry = _content.CreateElement ("item");
Это шаг в правильном направлении, но он создает следующий XML:
<item id="content3" href="test1.html" media-type="application/xhtml+xml" xmlns="" />