Извлеките все атрибуты пространства имен из XDocument с помощью F # - PullRequest
0 голосов
/ 13 июля 2020

Я хотел бы извлечь все элементы XAttribute со свойством IsNamespaceDeclaration, равным true, из XDocument. Root и поместить их в список для дальнейшей обработки.

Я бы хотел сделать это без использования xPath и в F #.

Предпосылки: у меня есть ограничение (бизнес-правило), согласно которому определенные пространства имен должны быть объявлены в элементе root элемента XML, а не в соответствующих элементах, в то время как некоторые другие пространства имен должны не объявляться в элементе root. Поэтому я должен проверить их родителей.

Я пробовал несколько вариантов, но безуспешно. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 14 июля 2020
let namespaceAttributes =
  r.DescendantsAndSelf().Attributes()
  |> Seq.where (fun i -> 
           i.IsNamespaceDeclaration 
           && 
           i.Name.LocalName <> "xsi")

, где r - XElement

...