2010-04-22 18 views
5

Cố gắng thực hiện phân tích cú pháp đơn giản của tài liệu XML. Cách dễ nhất để rút ra hai PropertyGroups dưới đây là gì?Sử dụng phương pháp XElement.Elements, tôi có thể tìm thấy các phần tử có không gian tên ký tự đại diện nhưng có cùng tên không?

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    1 
    </PropertyGroup> 
    <PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    2 
    </PropertyGroup> 
</Project> 

Tôi đã cố gắng sử dụng XElement.Elements (XName) nhưng để làm như vậy tôi cần tiền tố PropertyGroup với xmlns. Vấn đề là tôi không quan tâm đến không gian tên và nếu nó thay đổi trong tương lai tôi vẫn muốn tất cả các nhóm bất động sản được lấy ra.

var xml = XElement.Load(fileNameWithPath); 
var nameSpace = xml.GetDefaultNamespace(); 

var propertyGroups= xml.Elements(nameSpace + "PropertyGroup"); 

Bạn có thể cải thiện mã này sao cho tôi không cần phải thêm tiền tố với tên không gian? Tôi biết tôi về cơ bản có thể chỉ reimplement các phương pháp Elements nhưng tôi đã hy vọng có một số cách để vượt qua một không gian tên wildcard?

Cảm ơn,

Gavin

Trả lời

9

Điều này làm việc cho bạn?

xml.Elements().Where(e => e.Name.LocalName == "PropertyGroup") 
Các vấn đề liên quan