gpt4 book ai didi

c# - 不完整的 XML 属性

转载 作者:数据小太阳 更新时间:2023-10-29 02:59:41 25 4
gpt4 key购买 nike

我正在通过 dataset.GetXML() 方法从 Dataset 创建 XML。我想给它添加属性

            XmlAttribute attr = xmlObj.CreateAttribute("xmlns:xsi");
attr.Value = "http://www.createattribute.com";
xmlObj.DocumentElement.Attributes.Append(attr);

attr = xmlObj.CreateAttribute("xsi:schemaLocation");
attr.Value = "http://www.createattribute.com/schema.xsd";
xmlObj.DocumentElement.Attributes.Append(attr);

xmlObj.DocumentElement.Attributes.Append(attr);

但是当我打开 XML 文件时,我发现“xsi:”不在 schemaLocation 的属性中

           <root xmlns="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.createattribute.com"
schemaLocation="http://www.createattribute.com/schema.xsd">

我想要这样的属性

           xsi:schemaLocation="http://www.createattribute.com/schema.xsd"

总是这样吗,还是我在这里遗漏了一些东西。我很好奇是否有人可以帮助我解决这个问题,或者在我找到解决方案时给我一些 URL

谢谢

最佳答案

这里的关键是您需要告诉 XmlWriter 使用什么命名空间,然后它将应用正确的前缀。

在下面的代码中,SetAttribute 方法中的第二个参数是为 xmlns:xsi 命名空间指定的命名空间 uri。这让 XmlWrite 放入正确的前缀。

XmlDocument xmlObj = new XmlDocument();
xmlObj.LoadXml("<root></root>");

XmlElement e = xmlObj.DocumentElement;
e.SetAttribute("xmlns:xsi", "http://www.createattribute.com");
e.SetAttribute("schemaLocation", "http://www.createattribute.com", "http://www.createattribute.com/schema.xsd");

使用原始问题语法的类似代码是:

XmlDocument xmlObj = new XmlDocument();
xmlObj.LoadXml("<root></root>");

XmlAttribute attr = xmlObj.CreateAttribute("xmlns:xsi");
attr.Value = "http://www.createattribute.com";
xmlObj.DocumentElement.Attributes.Append(attr);

attr = xmlObj.CreateAttribute("schemaLocation", "http://www.createattribute.com");
attr.Value = "http://www.createattribute.com/schema.xsd";
xmlObj.DocumentElement.Attributes.Append(attr);

关于c# - 不完整的 XML 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1837399/

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