我有以下XML文档:
<ABC: EXAMPLE xmlns: ABC = "www.xyz.com" targetNamespace = "www.pqr.com">
//BODY
</ABC:EXAMPLE>
或
<ORDER targetNamespace = "www.pqr.com">
BODY
</ORDER>
我试过了——
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlstring);
xmlNamespace = xmlDoc.DocumentElement.NamespaceURI;
但这只会让我分别从上述两份文件中返回www.xyz.com
和null
。
如何获取targetNamespace
?
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 上的属性来访问其属性,可以使用 XmlNode 上的命名索引和 Value 属性来访问值