Malte Geissler
Malte Geissler

Reputation: 1

Need help by selecting specific values from nested XML-file via PowerAutomate

I have a XML-file that looks like that:

<RESULTS>
  <RESULTSHEADER>
    <TEST1>
      <IDENT>
        <REGISTRATION />
        <X>Value</X>
      </IDENT>
      <COMMENT>
        <TIME>01.01.2025 12:12:12</TIME>
        <TEXT>someText</TEXT>
      </COMMENT>
    </TEST1>
  </RESULTSHEADER>
  <RESULT METHOD="ABB" OBJECT="XSD2">
    <TITLE>SomeTitle</TITLE>
    <HEADER>
      <START_TEST>01.01.2025 12:12:12</START_TEST>
      <END_TEST>01.01.2025 12:12:12</END_TEST>
    </HEADER>
    <SECTION OBJECT="CTRL">
      <TITLE>CTRL1</TITLE>
      <MEAS OBJECT="V1">
        <TITLE>V1</TITLE>
        <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label2" TEXT="Label2_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label3" TEXT="Label3_Text">1</VALUE>
      </MEAS>
      <MEAS OBJECT="V2">
        <TITLE>V2</TITLE>
        <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label2" TEXT="Label2_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label3" TEXT="Label3_Text">1</VALUE>
      </MEAS>
    </SECTION>
    <SECTION OBJECT="CTRL">
      <TITLE>CTRL2</TITLE>
      <MEAS OBJECT="V1">
        <TITLE>V1</TITLE>
        <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label2" TEXT="Label2_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label3" TEXT="Label3_Text">1</VALUE>
      </MEAS>
      <MEAS OBJECT="V2">
        <TITLE>V2</TITLE>
        <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label2" TEXT="Label2_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label3" TEXT="Label3_Text">1</VALUE>
      </MEAS>
    </SECTION>
    <SECTION OBJECT="CTRL">
      <TITLE>CTRL3</TITLE>
      <MEAS OBJECT="V1">
        <TITLE>V1</TITLE>
        <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label2" TEXT="Label2_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label3" TEXT="Label3_Text">1</VALUE>
      </MEAS>
      <MEAS OBJECT="V2">
        <TITLE>V2</TITLE>
        <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label2" TEXT="Label2_Text">1</VALUE>
        <VALUE FORMAT="ALPHA" LABEL="Label3" TEXT="Label3_Text">1</VALUE>
      </MEAS>
    </SECTION>
  </RESULT>
</RESULTS>

What I would like to do is create a flow in PowerAutomate, that selects only specific values from that XML-file, so that I keep the structure of the file but reduce the content, e.g. like that:

<RESULT METHOD="ABB" OBJECT="XSD2">
<TITLE>SomeTitle</TITLE>
<HEADER>
  <START_TEST>01.01.2025 12:12:12</START_TEST>
  <END_TEST>01.01.2025 12:12:12</END_TEST>
</HEADER>
<SECTION OBJECT="CTRL">
  <TITLE>CTRL1</TITLE>
  <MEAS OBJECT="V1">
    <TITLE>V1</TITLE>
    <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
  </MEAS>
  <MEAS OBJECT="V2">
    <TITLE>V2</TITLE>
    <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
  </MEAS>
</SECTION>
<SECTION OBJECT="CTRL">
  <TITLE>CTRL2</TITLE>
  <MEAS OBJECT="V1">
    <TITLE>V1</TITLE>
    <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
  </MEAS>
  <MEAS OBJECT="V2">
    <TITLE>V2</TITLE>
    <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
  </MEAS>
</SECTION>
<SECTION OBJECT="CTRL">
  <TITLE>CTRL3</TITLE>
  <MEAS OBJECT="V1">
    <TITLE>V1</TITLE>
    <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
  </MEAS>
  <MEAS OBJECT="V2">
    <TITLE>V2</TITLE>
    <VALUE FORMAT="ALPHA" LABEL="Label1" TEXT="Label1_Text">1</VALUE>
  </MEAS>
</SECTION>
</RESULT>

As the XML-file is very nested, I a struggeling how to filter out only specific values in that deep nested XML-values.

I tried to set up a PowerAutomate Flow by using Select function but I have no idea how to do that.

Upvotes: 0

Views: 40

Answers (1)

frue
frue

Reputation: 86

you can try using xpath expression like this:

xml(xpath(<replace_with_xml_file>, '//RESULT[@METHOD="ABB" and @OBJECT="XSD2"]')[0])

enter image description here

Upvotes: 0

Related Questions