नाम पता जानने के बिना एक XDocument खोजने का एक तरीका है? मेरे पास एक प्रक्रिया है जो सभी SOAP अनुरोधों को लॉग करती है और संवेदनशील डेटा को एन्क्रिप्ट करती है। मैं नाम के आधार पर कोई तत्व ढूंढना चाहता हूं। कुछ ऐसा है, मुझे सभी तत्व दें जहां नाम क्रेडिटकार्ड है। मुझे परवाह नहीं है कि नाम स्थान क्या है।
मेरी समस्या LINQ के साथ हो रही है और एक xml नामस्थान की आवश्यकता है।
मेरे पास अन्य प्रक्रियाएं हैं जो XML से मान प्राप्त करती हैं, लेकिन मैं इन अन्य प्रक्रियाओं के नाम स्थान को जानता हूं।
XDocument xDocument = XDocument.Load(@"C:\temp\Packet.xml");
XNamespace xNamespace = "http://CompanyName.AppName.Service.Contracts";
var elements = xDocument.Root
.DescendantsAndSelf()
.Elements()
.Where(d => d.Name == xNamespace + "CreditCardNumber");
मैं वास्तव में नामस्थान के बारे में जानने के बिना xml खोजने की क्षमता रखना चाहता हूं, कुछ इस तरह से:
XDocument xDocument = XDocument.Load(@"C:\temp\Packet.xml");
var elements = xDocument.Root
.DescendantsAndSelf()
.Elements()
.Where(d => d.Name == "CreditCardNumber")
यह काम नहीं करेगा क्योंकि मुझे संकलन समय पर नामस्थान पहले से नहीं पता है।
यह कैसे किया जा सकता है?
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Request xmlns="http://CompanyName.AppName.Service.ContractA">
<Person>
<CreditCardNumber>83838</CreditCardNumber>
<FirstName>Tom</FirstName>
<LastName>Jackson</LastName>
</Person>
<Person>
<CreditCardNumber>789875</CreditCardNumber>
<FirstName>Chris</FirstName>
<LastName>Smith</LastName>
</Person>
...
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Request xmlns="http://CompanyName.AppName.Service.ContractsB">
<Transaction>
<CreditCardNumber>83838</CreditCardNumber>
<TransactionID>64588</FirstName>
</Transaction>
...