Вот часть XML Я пытаюсь разобрать:Linq в XML ... Я никогда не получить какие-либо значения потомка с XML как есть
<?xml version="1.0" encoding="UTF-8"?>
<Workflow xmlns="http://soap.sforce.com/2006/04/metadata">
<alerts>
<fullName>Broker_Not_In_SF_Current_Broker_Account</fullName>
<description>Broker Not In SF - Current Broker Account</description>
<protected>false</protected>
<recipients>
<recipient>[email protected]</recipient>
<type>user</type>
</recipients>
<senderType>CurrentUser</senderType>
<template>Broker_Emails/Current_Broker_on_Acct_Not_in_SF</template>
</alerts>
<rules>
<fullName>No Service Contact Assigned</fullName>
<active>true</active>
<criteriaItems>
<field>Account.Type</field>
<operation>equals</operation>
<value>Client</value>
</criteriaItems>
<criteriaItems>
<field>Account.Service_Contact__c</field>
<operation>equals</operation>
</criteriaItems>
<description>Notification when a service contact has not been assigned after 5 days, then 8 days.</description>
<triggerType>onCreateOrTriggeringUpdate</triggerType>
</rules>
</Workflow>
я могу использовать простой Linq для XML на некоторой случайной SIMPLE XML-файл, но в этом случае ничего не получаю. Я предполагаю из-за пространства имен xml, но есть ли способ обойти это, кроме удаления этого в xml rile до разбора?
В прошлом я не выполнял много работы с XML, поэтому я пытаюсь понять, как я могу взять файл, как показано, и вытащить узлы правила для создания коллекции или правил со свойствами. Я могу получить объект/коллекция часть, но я застрял на том, почему пространство имен не удается это простой вызов:
var setting = xmlDoc.Descendants("rules").First(e => e.Element("fullName").Value == "No Service Contact Assigned");
Console.WriteLine(setting.Element("active").Value);
Спасибо за любую помощь о том, что с этим делать и как правильно использовать пространство имен.
совершенны, простая вещь, я полагал, что я был с видом. – BryanGrimes
Да, вы были очень близки. Пространства имен в XML всегда должны совпадать, чтобы получить желаемые результаты (не только для LINQ-to-XML, но также в XPath, XSLT, XQuery и т. Д.). – Lucero
И мы должны помнить, что оператор «+» перегружен ... это моя первая известная встреча с перегрузкой оператора в дикой природе ... – rasx