XML 编写器命名空间

标签 xml vb.net svg

我正在尝试制作 SVG 文件。这是我当前编写根元素的代码:

     ' Write the root element.
        .WriteStartElement("svg")

        'atributes in elemenent + namespace
        .WriteAttributeString("width", SVGWidth)
        .WriteAttributeString("height", SVGheight)
        .WriteAttributeString("xmlns", "xsi", Nothing, "http://www.w3.org/2000/svg")

        .WriteEndElement()

当我运行 XML 时,它看起来像这样:

<svg width="1920" height="1080" xmlns:xsi="http://www.w3.org/2000/svg">

但我想最终得到:

<svg width="1920" height="1080" xmlns="http://www.w3.org/2000/svg">

但是当我从 vb.net 代码中删除“xsi”时,会导致错误。我该如何解决这个问题?

最佳答案

如果在创建开始元素时添加 namespace 会怎么样?

参见https://msdn.microsoft.com/en-us/library/7579ed08(v=vs.110).aspx

public void WriteStartElement(
    string localName,
    string ns
)

像这样:

.WriteStartElement("svg", "http://www.w3.org/2000/svg")

然后删除稍后尝试设置命名空间的行?

关于XML 编写器命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47925848/

相关文章:

xml - 使用XPath从序列中搜索匹配的XML元素

java - 在Java Struts应用程序中的放置位置以及如何调用本地XSD文件?

html - 内联 SVG <use> 删除之前的 :hover fill

c# - 为什么 `XmlDocument.LoadXml()` 不适用于命名空间?

xml - 在 XSLT 转换中保留 "&quot;"实体

asp.net - jquery ajax发布问题在警报中获取空值

c# - 在 C# 中重载 =operator 或在赋值前后触发事件的替代方法?

c# - .NET 中的键盘事件

javascript - 如何将 SVG 嵌入到来自 Cross Origin url 的 html <object> 标签中(s3_url/image.svg)

html - 如何判断 DOM 元素是 HTML 还是 SVG?