Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中创建此XML#_C#_.net_Xml_Xmldocument - Fatal编程技术网

C# 在C中创建此XML#

C# 在C中创建此XML#,c#,.net,xml,xmldocument,C#,.net,Xml,Xmldocument,我以前使用过XmlDocument来生成基本的Xml,但是我很难通过代码重新创建以下Xml。主要问题似乎是将名称空间添加到描述部分 如何创建以下示例XML文件 <?xml version="1.0"?> <pndsdc:description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:

我以前使用过
XmlDocument
来生成基本的Xml,但是我很难通过代码重新创建以下Xml。主要问题似乎是将名称空间添加到描述部分

如何创建以下示例XML文件

<?xml version="1.0"?>
<pndsdc:description
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:dcterms="http://purl.org/dc/terms/"
         xmlns:pndsterms="http://purl.org/mla/pnds/terms/"
         xmlns:pndsdc="http://purl.org/mla/pnds/pndsdc/"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://purl.org/mla/pnds/pndsdc/
                             http://www.ukoln.ac.uk/metadata/pns/pndsdcxml/2005-06-13/xmls/pndsdc.xsd"
>
    <dc:identifier encSchemeURI="http://purl.org/dc/terms/URI">http://example.org/my/docs/12345/</dc:identifier>
    <dc:title xml:lang="en">Everything you wanted to know about identity, but were afraid to ask</dc:title>
    <dc:description xml:lang="en">The article provides a summary of the 2003 White Paper on identity cards for the UK
    with a critique from the perspective of several national and international civil liberties organisations.</dc:description>
    <dc:subject>Identity cards</dc:subject>
    <dc:subject>Civil liberties</dc:subject>

    <dc:subject>Human rights</dc:subject>
    <dc:type encSchemeURI="http://purl.org/dc/terms/DCMIType" valueURI="http://purl.org/dc/dcmitype/Text">Text</dc:type>
    <dcterms:license valueURI="http://creativecommons.org/licenses/by-nc-nd/2.0/uk/" />
    <dcterms:rightsHolder>The National Campaign Against Identity Cards</dcterms:rightsHolder>
    <dcterms:spatial encSchemeURI="http://purl.org/dc/terms/TGN">World, Europe, United Kingdom</dcterms:spatial>
</pndsdc:description>

http://example.org/my/docs/12345/
你想知道的关于身份的一切,但又不敢问
这篇文章概述了2003年英国身份证白皮书
从几个国家和国际公民自由组织的角度提出批评。
身份证
公民自由
人权
正文
全国反对身份证运动
世界、欧洲、联合王国
代码也可以是

您是否尝试过使用

我想这就是你要找的部分:

XmlTextWriter维护一个名称空间 对应于所有 当前文件中定义的命名空间 元素堆栈。使用XmlTextWriter可以 可以手动声明名称空间

w.WriteStartElement("root");
 w.WriteAttributeString("xmlns", "x", null, "urn:1");
  w.WriteStartElement("item","urn:1");
  w.WriteEndElement();
  w.WriteStartElement("item","urn:1");
  w.WriteEndElement();
 w.WriteEndElement();
上面的C代码生成 跟踪输出。XmlTextWriter 将命名空间声明升级为 根元素来避免它 在两个子元素上重复。 子元素拾取前缀 从名称空间声明

<root xmlns:x="urn:1">   
<x:item/>  
<x:item/>  
</x:root>

你有没有试过使用这个软件

我想这就是你要找的部分:

XmlTextWriter维护一个名称空间 对应于所有 当前文件中定义的命名空间 元素堆栈。使用XmlTextWriter可以 可以手动声明名称空间

w.WriteStartElement("root");
 w.WriteAttributeString("xmlns", "x", null, "urn:1");
  w.WriteStartElement("item","urn:1");
  w.WriteEndElement();
  w.WriteStartElement("item","urn:1");
  w.WriteEndElement();
 w.WriteEndElement();
上面的C代码生成 跟踪输出。XmlTextWriter 将命名空间声明升级为 根元素来避免它 在两个子元素上重复。 子元素拾取前缀 从名称空间声明

<root xmlns:x="urn:1">   
<x:item/>  
<x:item/>  
</x:root>


您需要使用
XmlNamespaceManager

XmlDocument document = new XmlDocument();
XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(document.NameTable);
xmlNamespaceManager.AddNamespace("dc","http://purl.org/dc/elements/1.1/");
...

您需要使用
XmlNamespaceManager

XmlDocument document = new XmlDocument();
XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(document.NameTable);
xmlNamespaceManager.AddNamespace("dc","http://purl.org/dc/elements/1.1/");
...

不要担心创建名称空间声明。只需确保您创建的每个元素都位于正确的命名空间中。
XmlDocument
将为您创建名称空间声明。因此:

string pdnsdcUri = "http://purl.org/mla/pnds/pndsdc/";
string dcUri = "http://purl.org/dc/elements/1.1/"
...
XmlDocument d = new XmlDocument();
XmlElement description = d.CreateElement("pdnsdc", "description", pdnsdcUri);
d.AddChild(description);
XmlElement identifier = d.CreateElement("dc", "identifier", dcUri);
description.AddChild(identifier);
等等。通常更容易创建一个
字典
,其中包含由前缀键入的名称空间,然后执行以下操作:

XmlElement foo = d.CreateElement("prefix", "name", namespaces[prefix]);

不要担心创建名称空间声明。只需确保您创建的每个元素都位于正确的命名空间中。
XmlDocument
将为您创建名称空间声明。因此:

string pdnsdcUri = "http://purl.org/mla/pnds/pndsdc/";
string dcUri = "http://purl.org/dc/elements/1.1/"
...
XmlDocument d = new XmlDocument();
XmlElement description = d.CreateElement("pdnsdc", "description", pdnsdcUri);
d.AddChild(description);
XmlElement identifier = d.CreateElement("dc", "identifier", dcUri);
description.AddChild(identifier);
等等。通常更容易创建一个
字典
,其中包含由前缀键入的名称空间,然后执行以下操作:

XmlElement foo = d.CreateElement("prefix", "name", namespaces[prefix]);

如果可以的话,我建议使用LINQtoXML及其XDocument类。使用名称空间创建XML要容易得多。您应该问一个更直接的问题。你已经有什么了?你特别需要解决什么问题?我和Peter在一起,我不知道这里有什么困难,所以除了编写完整的代码来编写上述文档外,还有人如何回答你的问题?如果可以的话,我建议使用Linq to XML及其XDocument类。使用名称空间创建XML要容易得多。您应该问一个更直接的问题。你已经有什么了?你特别需要解决什么问题?我和Peter在一起,我不知道这里有什么困难,所以除了编写完整的代码来编写上面的文档外,还有人如何回答你的问题?没有,但我会试一试。谢谢,您可能想拿起并引用相应的英文msdn文章-这里的大多数人都不会说德语;-)不,但我会试一试。谢谢,您可能想拿起并引用相应的英文msdn文章-这里的大多数人都不会说德语;-)