Ich versuche, den richtigen XPath zu erstellen, um einen Knoten basierend auf einer Bedingung zu erhalten, die nicht Teil des XPath ist, der mit der Methode in C# ausgewählt wird.XPath mit anderem Knotenpfad
Also sagen wir, ich habe das folgende XML.
<Root>
<Parties>
<Party>
<Person>
<Name>Bob Smith</Name>
</Person>
<Role>
<Type>Borrower</Type>
</Role>
</Party>
<Party>
<Person>
<Name>Mary Smith</Name>
</Person>
<Role>
<Type>CoBorrower</Type>
</Role>
</Party>
</Parties>
</Root>
Also, was ich bekommen wollen, ist der Wert von
//Root/Parties/Party/Person/Name
wo
//Root/Parties/Party/Role/Type
ist 'Borrower'.
Basierend auf meinen Recherchen vor dem Posten der Frage dachte ich, das folgende könnte funktionieren, aber kein Glück.
XDocument xDoc = XDocument.Parse(xml);
var elm = xDoc.XPathSelectElement("//Root/Parties/Party[./Role/[Type = 'Borrower']/Person/Name");
Aber dieser Code gibt mir die folgende Ausnahme:
Eine nicht behandelte Ausnahme des Typs 'System.Xml.XPath.XPathException' aufgetreten in System.Xml.dll
Zusätzliche Informationen: Ausdruck muss zu einemnode-set
auswerten.
'// Name [./ folgende :: Type =" Borrower "]' – Andersson