xpath查询按值更新元素

时间:2016-06-29 16:02:41

标签: xml xpath

我正在尝试使用XPath查询按值访问元素以便稍后更新其值,尽管XML文件很简单,但无法找到正确的查询。

例如:

<?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>

我只想逐个获取访问元素,例如: 将名为ACOMRUR的TABLE_PK元素更新为第3行,使用新值替换ACOMRUR, /根/行[3] / OBJETID [文本()= 'ACOMRUR'] /根/行/ TABLE_PK [文本()= 'ACOMRUR']

我还测试了更复杂的查询,嵌套的逻辑运算符,但没有。 我将不胜感激任何建议 感谢,

1 个答案:

答案 0 :(得分:0)

我不确定你想要什么,但你可以使用以下xpath:

/root/row/*

这将返回rows元素中所有root的所有直接子元素。