как выбрать все desendent из xmlfile - PullRequest
0 голосов
/ 09 марта 2011

У меня есть следующий фрагмент XML:

<dependency>
  <dependentAssembly dependencyType="install" allowDelayedBinding="true"  size="92160">
    <hash>
      <dsig:Transforms>
        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
      </dsig:Transforms>
      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
      <dsig:DigestValue>CPxsdsbvZSAAkmARkxa8ychL2aLZRc=</dsig:DigestValue>
    </hash>
  </dependentAssembly>
</dependency>

Как выбрать этот узел, используя LINQ, или все дочерние узлы для него:

<dsig:Transforms> 

Спасибо.

Ответы [ 2 ]

1 голос
/ 09 марта 2011

XDocument.Load("file.xml").Root.Descendants(XName.Get("dsig", "Transforms"));

0 голосов
/ 09 марта 2011

Примерно так должно работать:

XElement docElem = XElement.Load(pathToXml);
XNamespace ns = "http://www.w3.org/2000/09/xmldsig#";

// This assumes you know there will be exactly one "Transforms" element
XElement transforms = docElem.Descendants(ns + "Transforms").Single();
foreach (XElement transform in transforms.Elements()) {
    // Do something with each Transform element
}

Чтобы это работало, должен быть загружен полный XML (с объявлениями префиксов пространства имен).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...