Tengo un documento XML que cargué e intento buscar con XPath. El nodo raíz en este archivo es <t:Transmission xmlns:t='urn:InboundShipment'>
y el archivo final se cierra correctamente con </t:Transmission>
.XML de análisis: Dos puntos en mi elemento hacen que XPath lo pierda
Mi problema es que no puedo caminar por el árbol sin usar un eje descendente. En otras palabras, puedo hacer: SelectSingleNode("//TransactionHeader[SHIPPERSTATE='CA']")
y obtener un nodo a cambio. Pero no puedo hacer lo que debería ser el equivalente: SelectSingleNode("/Transmission/TransmissionBody/Transaction/TransactionHeader[SHIPPERSTATE='CA']")
Si elimino el t:
puedo hacer una búsqueda XPath en /Transmission
y obtener el archivo completo. Con el t:
allí solo obtengo nulo. O si intento SelectSingleNode("t:Transmission")
me sale un error con mi declaración XPath.
Por lo general, no es necesario que consulte el elemento raíz, por lo que debería ser capaz de hacer con solo usar el eje descendente para mis búsquedas. Pero el XML parece válido para mí y me gustaría saber cómo solucionarlo. Además, no quiero pedirle al cliente que elimine "t" solo porque no sé cómo manejarlo.
Impresionante, gracias James! Grandes referencias, también. –