c#如何从XML文档中获取targetNamespace

时间:2019-11-22 13:50:55

标签: c# xml xsd namespaces xml-namespaces

我有以下XML文档:

<ABC: EXAMPLE xmlns: ABC = "www.xyz.com" targetNamespace = "www.pqr.com">
//BODY
</ABC:EXAMPLE>

OR

<ORDER targetNamespace = "www.pqr.com">
BODY
</ORDER>

我尝试过此-

 XmlDocument xmlDoc = new XmlDocument();
 xmlDoc.LoadXml(xmlstring);
 xmlNamespace = xmlDoc.DocumentElement.NamespaceURI;

但这只会分别从上述两个文档中返回我www.xyz.comnull

如何获取targetNamespace

1 个答案:

答案 0 :(得分:1)

targetNamespace是XML元素ABC:EXAMPLE的属性,而不是标准XML,因此XmlDocument上没有直接供您获取的属性。您需要使用Attributes属性进行访问。像这样:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlstring);

// This is the namespace of the element 'ABC:EXAMPLE', so "www.xyz.com"
xmlNamespace = xmlDoc.DocumentElement.NamespaceURI;

// This is the value of the attribute 'targetNamespace', so "www.pqr.com"
xmlTargetNamespace = xmlDoc.DocumentElement.Attributes["targetNamespace"].Value;

您可以在任何XmlElement上使用Attributes属性来访问其属性,可以在XmlNode上使用命名索引和Value属性来访问值