Say I XElement.Parse() mit dem folgenden XML-String nennen:Kann ich vermeiden, in LINQ to XML vollständig qualifizierte Elementnamen verwenden zu müssen?
var xml = XElement.Parse(@"
<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>7c75442509c41100b6a413b88b523bd6f46554cdbee5b6cbe27bc08cb3f6a865</ID>
<DisplayName>me</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
...
");
Wenn es Zeit wird, das Element abfragen, ich bin da ein xmlns
vollqualifizierten Elementnamen zu verwenden, gezwungen, dass XML-Dokument enthält Attribut in seiner Wurzel. Dies erfordert umständliche Kreationen von XName Instanzen:
var AWS_XMLNS = "http://s3.amazonaws.com/doc/2006-03-01/";
var ownerElement = xml.Element(XName.Get("AccessControlPolicy", AWS_XMLNS)).Element(XName.Get("Owner", AWS_XMLNS));
Wenn das, was ich wirklich will, ist einfach,
var ownerElement = xml.Element("AccessControlPolicy").Element("Owner");
Gibt es eine Möglichkeit LINQ annehmen einen bestimmten Namespace in XML zu machen, damit ich nicht muss es weiter spezifizieren?