Ich habe versucht, mit verschiedenen Optionen durch zu kommen und konnte nicht den richtigen Weg finden, es zu tun. Hier ist die XML-Datei:xmlstarlet wählen Geschwister basierend auf Text-Wert
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>PriceRule__c.All</members>
<members>PriceRule__c.None</members>
<members>ProductRule__c.All</members>
<members>Quote__c.All_Quotes</members>
<members>SummaryVariable__c.All</members>
<name>ListView</name>
</types>
<types>
<members>*</members>
<name>AnalyticSnapshot</name>
</types>
</Package>
Ich mag den Text der „namen“ Knoten erhalten können, die in den gleichen „Typen“ Knoten für alle „Mitglieder“ Knoten, die mit PriceRule__c beginnen. Hier ist die am weitesten Ich konnte das war tatsächlich die Werte dieser Knoten zu finden:
echo $(xmlstarlet sel -N x="http://soap.sforce.com/2006/04/metadata" -t -v "//x:types/*[starts-with(text(),'PriceRule__c')]" test.xml)
Dies gibt:
PriceRule__c.All PriceRule__c.None
Aber was ich brauche, ist ein Weg, um den Wert Listview zu erhalten Irgendeine Idee, wie der XPath sein sollte, um das zu bekommen? Vielen Dank im Voraus!
danke! Das habe ich gesucht! –
Ich bin nicht klar, was das "x:" im Beispiel für/darstellt. –
@BillHileman: Dies ist ein Namespace-Präfix, das von OP über '-N' in xmlstarlet definiert wird, um den Standard-Namespace im XML-Dokument abzudecken. Siehe [*** Wie behandelt XPath XML-Namespaces? ***] (https://stackoverflow.com/questions/40796231/how-does-xpath-deal-with-xml-namespaces) – kjhughes