Jak konwertować atrybuty XML na węzły tekstowe

Mam skrypt PHP, który pobiera plik XML ze zdalnego serwera i konwertuje go na JSON przy użyciu simplexml_load_string i json_encode. Jednak simplexml_load_string wydaje się ignorować atrybuty wbudowane, takie jak:

<code><AxisFeedrate dataItemId="iid7" timestamp="2012-03-21T15:15:41-04:00" sequence="7" name="Yfrt" subType="ACTUAL" units="MILLIMETER/SECOND">UNAVAILABLE</AxisFeedrate>
</code>

W tym przypadku reprezentacja JSON byłaby {{AxisFeedrate: 'UNAVAILABLE'}

Muszę jednak mieć te atrybuty. Jednym z pomysłów, z którym się zetknąłem, jest zastąpienie ciągów znaków, aby przekształcić atrybuty w węzły tekstowe w taki sposób:

<code><AxisFeedrate>
  <dataItemId>iid7</dataItemId>
  <timestamp>2012-03-21T15:15:41-04:00</timestamp>
  <sequence>7</sequence>
  <name>Yfrt</name>
  <subType>ACTUAL</subType>
  <units>MILLIMETER/SECOND"</units>
  <value>UNAVAILABLE</value>
</AxisFeedrate>
</code>

Mogę przekształcić atrybuty w ich własne elementy znacznika za pomocą zwykłego find / replace, ale mam problem z zawinięciem oryginalnej wartości tekstowej w znaczniku Value, przynajmniej przy użyciu find / replace.

Jakie są dobre podejścia do tego celu? Powyższy fragment XML znajduje się w środku wielu podobnych fragmentów różnych elementów danych, więc nie mogłem po prostu zacząć od zastąpienia pierwszego zamknięcia> przez> ...

questionAnswers(3)

yourAnswerToTheQuestion