用XML编写名称空间

本文关键字:空间 XML | 更新日期: 2023-09-27 17:50:55

我需要使用c#类(XmlDocument或XDocument)生成一个具有以下根元素的XML文件:

<ns1:ConsultaSeqRps xmlns:ns1="http://localhost:8080/WsNFe2/lote" 
    xmlns:tipos="http://localhost:8080/WsNFe2/tp" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://localhost:8080/WsNFe2/lote http://localhost:8080/WsNFe2/xsd/ConsultaSeqRps.xsd">

我尝试了使用setAttribute和XmlNamespaceManager的各种替代方案,但没有成功。

用XML编写名称空间

非常简单,除了使用XAttribute添加命名空间:

XNamespace ns1 = "http://localhost:8080/WsNFe2/lote";
XNamespace tipos = "http://localhost:8080/WsNFe2/tp";
XNamespace xsi = "http://www.w3.org/2001/XMLSchema-instance";
var doc = new XElement(ns1 + "ConsultaSeqRps",
    new XAttribute(XNamespace.Xmlns + "ns1", ns1), 
    new XAttribute(XNamespace.Xmlns + "tipos", tipos), 
    new XAttribute(XNamespace.Xmlns + "xsi", xsi),
    new XAttribute(xsi + "schemaLocation", 
      "http://localhost:8080/WsNFe2/lote http://localhost:8080/WsNFe2/xsd/ConsultaSeqRps.xsd")
    );

您可以利用LINQ to XML,下面的文章将帮助您在c#中创建名称空间如何:用命名空间创建文档(c#) (LINQ到XML)

希望对你有帮助。