Forum Discussion
XML anidado
Hola a todos,
Tengo un conjunto de datos que contiene 3 columnas XML. Según el siguiente conjunto de datos.
| XML 1 | XML 2 | XML 3 |
| <?xml version="1.0" encoding="utf-8"?><RepeaterData><Version>1.0</Version><Items><Item><_68314b7831992f9f8d5e7a725ac659c1 type="System.String">test</_68314b7831992f9f8d5e7a725ac659c1><_531ea9e5be0e9226154a6a7e1dc1a130 type="System.String">Safety Valves</_531ea9e5be0e9226154a6a7e1dc1a130><_c9900ef32f210afc9c82eb1d2c3c1f29 type="System.String">1234</_c9900ef32f210afc9c82eb1d2c3c1f29> <_a48b2fb7f47ecd63ec47072da6fb32b9 type="System.String">1234</_a48b2fb7f47ecd63ec47072da6fb32b9><_23e7af02b8986bb9f7c72734eefe74f8 type="System.String">On tools</_23e7af02b8986bb9f7c72734eefe74f8><_648088b77175e86d99d0f0dadbb2a43c type="System.String">IST Maintenance</_648088b77175e86d99d0f0dadbb2a43c><_2c69e069b76b5469b7a37b892d6efa60 type="System.String">me</_2c69e069b76b5469b7a37b892d6efa60><_ a056422922319cf1758dde9c07206d49 type="System.String"><? versión xml="1.0" codificación="utf-8"? >< RepeaterData>< Versión></Versión><Artículos>... | < RepeaterData>< Versión /> |
La columna XML 1 se expande perfectamente cuando se usa la función de análisis XML dentro de Power Query, pero las columnas XML 2 y 3 reciben mensajes de error.
He intentado reemplazar el < con < en las columnas 2 y 3 para que se vea similar a la columna 1, pero aún así no hay suerte.
¿Alguna idea sobre dónde podría estar yendo mal?
Muchas gracias,
Elliot
@Serdet Pude confirmar para la columna XML 3 que si realiza los siguientes reemplazos, se analiza como XML:
< eso es <
> a >
" a "
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("jZExC8IwEIX/Suikg6Z2EKGISxcHRVRc1CHqVYJpTpNL1X9vpVICqeKWe5d738tlu412Lo6ToaJ08igUK8FYiXpcqzeHlA76sVcx0Ec8SX32rzjKeyOvntTnM6WN+xKuIAhMJkiE3U2NZTxsTQkK2y6H6hz1wuDJHUmWsJYFMHpewY+6etpqsr8iU73B0xuvtRElKEbv4c4dVC5M5YLsjubSyw1qst2GxwPgH5lmUjsC+y1ahu6goC1aEv8Af1xDPm9fFf+yWN76U9F+/wI=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}), #"Replaced Value" = Table.ReplaceValue(#"Changed Type","<","<",Replacer.ReplaceText,{"Column1"}), #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value",">",">",Replacer.ReplaceText,{"Column1"}), #"Replaced Value2" = Table.ReplaceValue(#"Replaced Value1",""","""",Replacer.ReplaceText,{"Column1"}), #"Parsed XML" = Table.TransformColumns(#"Replaced Value2",{},Xml.Tables) in #"Parsed XML"
5 Replies
- Syndicate_Admin
Administrator
@Serdet ¿También ha intentado reemplazar el > con > también?
- Syndicate_Admin
Administrator
Hola Greg,
Gracias por su rápida respuesta. Acabo de probar esto y todavía experimento un error en las columnas 2 y 3.
- Syndicate_Admin
Administrator
@Serdet Es casi seguro que es un problema de codificación. Es como si las columnas XML 2 y 3 estuvieran codificadas en HTML o algo así y eso simplemente no va a funcionar el analizador XML, así que cosas como "e; tendría que ser cambiado a " y tal. Simplemente no es XML válido, es XML codificado en HTML o algo extraño como eso. Déjame ver si puedo encontrar algo que te permita convertir toda la codificación HTML a la normalidad.