我正在将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"
来自哪里?它添加的路径是文档在磁盘上的位置,但我没有在我的代码中添加它(至少,我知道)。如果您需要了解更多详情,请与我们联系。
编辑:我根据Filburt的建议修改了我的代码并更改了
XmlElement manifestEntry = _content.CreateElement ("item", _contentPath);
到
XmlElement manifestEntry = _content.CreateElement ("item");
这是朝着正确方向迈出的一步,但会产生以下XML:
<item id="content3" href="test1.html" media-type="application/xhtml+xml" xmlns="" />
答案 0 :(得分:2)
您自己添加此命名空间(第2行):
XmlElement manifestEntry = _content.CreateElement ("item", _contentPath);
请参阅XmlDocument.CreateElement Method (String, String) - 第一个String参数是要添加的元素的限定名称,第二个字符串是命名空间。
尝试
XmlElement manifestEntry = _content.CreateElement ("item");
一切都应该没问题。