使用linq to xml查询xml我没有问题,但我有这个特殊的xml文件,其第一个节点以声明开头。如果没有缩减(例如:xmlns:dm0 =“http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core”) 我只是使用decandents开始查询数据。我的问题是如何查询xml ex:使用以下格式获取'forbiddenNamespaceDependencies'的值:
<?xml version="1.0" encoding="utf-8"?>
<layerModel xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core">
<layers>
<layer Id="6c1b89f1-9204-4914-a721" name="Layer1" forbiddenNamespaceDependencies="NameSpace1">
<references>...
答案 0 :(得分:0)
我看不出问题所在。我拿了你的代码片段并添加了结束标记,以便得到一个结构良好的XML文档:
<?xml version="1.0" encoding="utf-8"?>
<layerModel xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core">
<layers>
<layer Id="6c1b89f1-9204-4914-a721" name="Layer1" forbiddenNamespaceDependencies="NameSpace1">
<references>
...
</references>>
</layer>
</layers>
</layerModel>
然后是以下C#代码
XDocument doc = XDocument.Load(@"..\..\XMLFile1.xml");
Console.WriteLine(doc.Root.Element("layers").Element("layer").Attribute("forbiddenNamespaceDependencies").Value);
输出“forbiddenNamespaceDependencies”属性的值就好了,根元素上的名称空间声明无关紧要,因为样本中没有元素或属性在该名称空间中。
如果您仍有问题,请考虑发布足够的详细信息,以便我们重现问题。