gpt4 book ai didi

c# - 为什么 .NET XML 将 xlmns 属性附加到我添加到文档的 XmlElements?我能阻止吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:55 27 4
gpt4 key购买 nike

我正在将 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="" />

最佳答案

您自己添加此命名空间(第 2 行):

XmlElement manifestEntry = _content.CreateElement ("item", _contentPath);

参见 XmlDocument.CreateElement Method (String, String) - 第一个字符串参数是您要添加的元素的限定名称,第二个字符串是命名空间。

尝试

XmlElement manifestEntry = _content.CreateElement ("item");

一切都会好起来的。

关于c# - 为什么 .NET XML 将 xlmns 属性附加到我添加到文档的 XmlElements?我能阻止吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8450860/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com