2016-11-30 3 views
0

Ich versuche, den untergeordneten Text des Elements "value" für ein einzelnes "Formular" auszuwählen, das eine ID hat, die mit tblXDAP-txtfXdapType - 1 übereinstimmt.xPath help - Geschwister auswählen

Hier ist eine Probe meines XML

<form xsi:type="ns1:FormElement"> 
    <ID xsi:type="soapenc:string">tblXDAP-txtfXdapType--1</ID> 
    <label xsi:type="soapenc:string">XDAP Type</label> 
    <labelValue xsi:nil="true" xsi:type="soapenc:string"/> 
    <type xsi:type="xsd:int">0</type> 
    <value xsi:type="soapenc:string">Win7 x64 Developer</value> 
</form> 
<form xsi:type="ns1:FormElement"> 
    <ID xsi:type="soapenc:string">tblXDAP-txtfXdapUser--1</ID> 
    <label xsi:type="soapenc:string">User</label> 
    <labelValue xsi:nil="true" xsi:type="soapenc:string"/> 
    <type xsi:type="xsd:int">0</type> 
    <value xsi:type="soapenc:string"/> 
</form> 
<form xsi:type="ns1:FormElement"> 
    <ID xsi:type="soapenc:string">tblXDAP-txtfXdapType--2</ID> 
    <label xsi:type="soapenc:string">XDAP Type</label> 
    <labelValue xsi:nil="true" xsi:type="soapenc:string"/> 
    <type xsi:type="xsd:int">0</type> 
    <value xsi:type="soapenc:string">Win7 x86 Standard</value> 
</form> 

Ich war mit dem xPath //*[local-name()='form'][*[local-name()='ID'][starts-with(., 'tblXDAP-txtfXdapType--1')]] aber ich bin nicht in der Lage, den Wert aus dieser Abfrage auszuwählen. In meinem Beispiel würde Ich mag den Wert „Win7 x64 Entwickler“

Antwort

0

Unter der Annahme wählen, dass die XML-Fragmente Teil wohlgeformter XML mit einem einzigen Wurzelelement sind,

<?xml version="1.0" encoding="UTF-8"?> 
<r xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <form xsi:type="ns1:FormElement"> 
    <ID xsi:type="soapenc:string">tblXDAP-txtfXdapType--1</ID> 
    <label xsi:type="soapenc:string">XDAP Type</label> 
    <labelValue xsi:nil="true" xsi:type="soapenc:string"/> 
    <type xsi:type="xsd:int">0</type> 
    <value xsi:type="soapenc:string">Win7 x64 Developer</value> 
    </form> 
    <form xsi:type="ns1:FormElement"> 
    <ID xsi:type="soapenc:string">tblXDAP-txtfXdapUser--1</ID> 
    <label xsi:type="soapenc:string">User</label> 
    <labelValue xsi:nil="true" xsi:type="soapenc:string"/> 
    <type xsi:type="xsd:int">0</type> 
    <value xsi:type="soapenc:string"/> 
    </form> 
    <form xsi:type="ns1:FormElement"> 
    <ID xsi:type="soapenc:string">tblXDAP-txtfXdapType--2</ID> 
    <label xsi:type="soapenc:string">XDAP Type</label> 
    <labelValue xsi:nil="true" xsi:type="soapenc:string"/> 
    <type xsi:type="xsd:int">0</type> 
    <value xsi:type="soapenc:string">Win7 x86 Standard</value> 
    </form> 
</r> 

diese dann XPath,

string(//form[ID = 'tblXDAP-txtfXdapType--1']/value) 

wird der String-Wert des value Element des formwählen, dessenwird wie angegeben

Win7 x64 Developer 

wie gewünscht.

Verwandte Themen