gpt4 book ai didi

c# - 创建一个带有命名空间的 xml 文件

转载 作者:太空宇宙 更新时间:2023-11-03 14:18:41 26 4
gpt4 key购买 nike

    <?xml version="1.0" encoding="UTF-8"?>
<manifest identifier="D2L_1000000179" xmlns:d2l_2p0="http://desire2learn.com/xsd/d2lcp_v2p0" xmlns="http://www.imsglobal.org/xsd/imscp_v1p1">
<resources>
<resource identifier="res_question_library" type="webcontent" d2l_2p0:material_type="d2lquestionlibrary" d2l_2p0:link_target="" href="questiondb.xml" title="Question Library" />
<resource identifier="res_quiz_1000000179" type="webcontent" d2l_2p0:material_type="d2lquiz" d2l_2p0:link_target="" href="quiz_d2l_1000000179.xml" title="Quiz to test D2L import" />
</resources>
</manifest>

我想创建这个 xml 文件。但是当我使用 Xelement 或 XmlElemenmt 创建它时,我得到了这个

<?xml version="1.0" encoding="UTF-8"?>
<manifest identifier="D2L_1000000179" xmlns:d2l_2p0="http://desire2learn.com/xsd/d2lcp_v2p0" xmlns="http://www.imsglobal.org/xsd/imscp_v1p1">
<resources>
<resource identifier="res_question_library" type="webcontent" material_type="d2lquestionlibrary" link_target="" href="questiondb.xml" title="Question Library" />
<resource identifier="res_quiz_1000000179" type="webcontent" material_type="d2lquiz" link_target="" href="quiz_d2l_1000000179.xml" title="Quiz to test D2L import" />
</resources>
</manifest>

这里 d2l_2p0:material_type 就像 material_type 一样。

有人帮助我使用 .net 框架创建了这个。

代码如下

private void createMenifetData(string destPath, long listExam)
{
XmlDocument xDoc = new XmlDocument();
XmlDeclaration xmlDeclaration = xDoc.CreateXmlDeclaration("1.0", "UTF-8", "");
XmlElement rootnode = xDoc.CreateElement("manifest");
xDoc.InsertBefore(xmlDeclaration, xDoc.DocumentElement);
rootnode.SetAttribute("identifier", "D2L_" + listExam.ToString());
rootnode.SetAttribute("xmlns:d2l_2p0", "http://desire2learn.com/xsd/d2lcp_v2p0");
rootnode.SetAttribute("xmlns", "http://www.imsglobal.org/xsd/imscp_v1p1");

XmlElement resources = xDoc.CreateElement("resources");
XmlElement resource = xDoc.CreateElement("resource");
resource.SetAttribute("identifier", "res_question_library");
resource.SetAttribute("type", "webcontent");
resource.SetAttribute(@"d2l_2p0:material_type", "d2lquestionlibrary");
resource.SetAttribute(@"d2l_2p0:link_target", "");
resource.SetAttribute("href", "questiondb.xml");
resource.SetAttribute("title", "Question Library");
resources.AppendChild(resource);

XmlElement resource1 = xDoc.CreateElement("resource");
resource1.SetAttribute("identifier", "res_quiz_" + listExam);
resource1.SetAttribute("type", "webcontent");
resource1.SetAttribute(@"d2l_2p0:material_type", "d2lquiz");
resource1.SetAttribute(@"d2l_2p0:link_target", "");
resource1.SetAttribute("href", "quiz_d2l_" + listExam + ".xml");
resource1.SetAttribute("title", "Quiz to test D2L import");
resources.AppendChild(resource1);

rootnode.AppendChild(resources);
xDoc.AppendChild(rootnode);
xDoc.Save(destPath + "\\imsmanifest.xml");}

最佳答案

    XNamespace defaultNamespace = "http://www.imsglobal.org/xsd/imscp_v1p1";

const string NAMESPACE_URI = "http://desire2learn.com/xsd/d2lcp_v2p0";
const string NAMESPACE_PREFIX = "d2l_2p0";

XNamespace otherNamespace = NAMESPACE_URI;

XElement root = new XElement(defaultNamespace + "manifest",
new XAttribute("identifier", "D2L_1000000179"),
new XAttribute(XNamespace.Xmlns + NAMESPACE_PREFIX, NAMESPACE_URI),
new XElement(defaultNamespace + "resources",
new XElement(defaultNamespace + "resource",
new XAttribute("identifier", "res_question_library"),
new XAttribute("type", "webcontent"),
new XAttribute(otherNamespace + "material_type", "d2lquestionlibrary"),
new XAttribute(otherNamespace + "link_target", ""),
new XAttribute("href", "questiondb.xml"),
new XAttribute("title", "Question Library")),
new XElement(defaultNamespace + "resource",
new XAttribute("identifier", "res_quiz_1000000179"),
new XAttribute("type", "webcontent"),
new XAttribute(otherNamespace + "material_type", "d2lquiz"),
new XAttribute(otherNamespace + "link_target", ""),
new XAttribute("href", "quiz_d2l_1000000179.xml"),
new XAttribute("title", "Quiz to test D2L import"))));

关于c# - 创建一个带有命名空间的 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5977626/

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