Используя OmniXML и Delphi, как найти элемент по его атрибуту и ​​изменить другой элемент в узле? - PullRequest
2 голосов
/ 28 декабря 2011

Используя OmniXML и Delphi, я хотел бы найти элемент и изменить другой элемент в узле. Например, в приведенном ниже листинге xml я хотел бы найти / first-name = 'Joe1', а затем найти и изменить / price с 1200 на 10. Я пытался использовать XPathSelect, но не могу указать /first-name.

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="myfile.xsl" ?>
<bookstore specialty="novel">
  <book style="autobiography">
    <author>
      <first-name>Joe1</first-name>
      <last-name>Bob</last-name>
      <award>Trenton Literary Review Honorable Mention</award>
    </author>
    <price>1200</price>
  </book>
  <book style="textbook">
    <author>
      <first-name>Mary</first-name>
      <last-name>Bob</last-name>
      <publication>Selected Short Stories of
        <first-name>Mary</first-name>
        <last-name>Bob</last-name>
      </publication>
    </author>
    <editor>
      <first-name>Britney</first-name>
      <last-name>Bob</last-name>
    </editor>
    <price>55</price>
  </book>
</bookstore>

1 Ответ

2 голосов
/ 28 декабря 2011

Используйте //book[author/first-name = "Joe1" ] в качестве запроса XPathSelect, чтобы получить узел, а затем получите доступ к подузлу Price с этого узла, чтобы изменить его.

...