<?xml version="1.0" encoding="UTF-8"?>
<Root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Element xsi:Attribute="Test"></Element>
</Root>
我正在尝试阅读“xsi:Attribute”属性;代码是这样的:
var doc = XDocument.Load(new StringReader(xmlText));
var node = doc.Root.Descendants().First();
XNamespace myNamespace = "xsi";
var attribute = node.Attributes(myNamespace + "Attribute").First();
它在最后一行抛出“Sequence contains no elements”异常。我做错了什么?
答案 0 :(得分:2)
您需要使用实际的命名空间,而不是"xsi"
,这只是XML文件本身中对真实命名空间的本地查找:
XNamespace myNamespace = "http://www.w3.org/2001/XMLSchema-instance";
答案 1 :(得分:0)
试试这个(我相信它更通用):
XNamespace myNamespace = doc.Root.GetNamespaceOfPrefix("xsi");