2016-06-29 5 views
1

Ich versuche, auf ein Element nach Wert mithilfe einer XPath-Abfrage zuzugreifen, um später seinen Wert zu aktualisieren, obwohl die XML-Datei einfach ist, konnte nicht die richtige Abfrage finden.Xpath-Abfrage, um ein Element nach Wert zu aktualisieren

zum Beispiel:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <row> 
    <OBJECTID>1</OBJECTID> 
    <TABLE_PK>IN</TABLE_PK> 
    <FIELD_PK>AC_TR_OID</FIELD_PK> 
    <TABLE_FK></TABLE_FK> 
    </row> 
    <row> 
    <OBJECTID>2</OBJECTID> 
    <TABLE_PK>ARQUETAP</TABLE_PK> 
    <FIELD_PK>ARP_AR_OID</FIELD_PK> 
    <TABLE_FK>ARQ</TABLE_FK> 
    </row> 
    <row> 
    <OBJECTID>3</OBJECTID> 
    <TABLE_PK>ACOMRUR</TABLE_PK> 
    <FIELD_PK>ACR_TR_OID</FIELD_PK> 
    <TABLE_FK>PASS</TABLE_FK> 
    </row> 
    <row> 
    <OBJECTID>4</OBJECTID> 
    <TABLE_PK>ACOMRUR</TABLE_PK> 
    <FIELD_PK>ACR_RA_OID</FIELD_PK> 
    <TABLE_FK>WRANCH</TABLE_FK> 
    </row> 
    <row> 
    <OBJECTID>5</OBJECTID> 
    <TABLE_PK>ACTUATION</TABLE_PK> 
    <FIELD_PK>ACT_ACTUATIONP_OID</FIELD_PK> 
    <TABLE_FK>ACTUATIONP</TABLE_FK> 
    </row> 
</root> 

Ich mag nur Zugang Elemente eine nach der anderen, zum Beispiel erhalten: aktualisieren TABLE_PK Element ACOMRUR die Anzahl der Zeile 3 mit einem neuen Wert namens ACOMRUR zu ersetzen, /root/row [3]/OBJETID [text() = 'ACOMRUR'] /root/row/TABLE_PK [text() = 'ACOMRUR']

Ich habe auch mit komplexeren Abfragen getestet, verschachtelte, logische Operatoren aber nichts. Ich würde schätzen, irgendwelche Vorschläge Dank,

+0

/root/row [3]/OBJETID [text() = 'ACOMRUR'] –

+0

/root/row/TABLE_PK [text() = 'ACOMRUR'] –

+0

Möglicherweise müssen Sie [Präfixe/Zuordnungen oder geschweifte URI angeben Literale] (https://www.w3.org/TR/xpath-31/#id-basics) für den Namensraum 'http: // www.w3.org/2001/XMLSchema-instance'. – McDowell

Antwort

0

Ich bin nicht sicher, was Sie wollen, aber Sie können folgende XPath verwenden:

/root/row/*

dies die unmittelbaren Kind alle werden Umlenkelemente aller rows in der root Element.

Verwandte Themen