Lo que estoy tratando de obtener es una matriz que contiene todos los valores de description como este:
var myArray = ['First Description', 'Second Description', 'Third Description']Entonces, estoy haciendo una solicitud a una API y leo mi valor así:
const xmlDoc = new DOMParser().parseFromString(xmlStr, "application/xml"); let firstDescription = xmlDoc.evaluate('Response/QueryListResponse/DomainEntity/Property[1]/value/text()') console.log(firstDescription.stringValue) -- Display : First DescriptionPero el problema con esta solución es que solo tengo una descripción. Así que traté de obtener un elemento dom y navegar hacia él.
Así que con este código:
x = xmlDoc.getElementsByTagName("QueryListResponse")[0];Obtuve un elemento DOM con todos los valores como este:
<QuerySelector> <MetaData></MetaData> <DomainEntity> <Property path="description"> <Value>First Description</Value> </Property> </DomainEntity> <DomainEntity> <Property path="description"> <Value>Second Description</Value> </Property> </DomainEntity> <DomainEntity> <Property path="description"> <Value>Third Description</Value> </Property> </DomainEntity> </QuerySelector>Entonces, para obtener toda mi descripción, tuve dos ideas ...
El primero es usar la primera solución y usar un for como este:
for (i; i <= nbOfValues; i++) { let v = xmlDoc.evaluate('Response/QueryListResponse/DomainEntity/Property['+i+']/value/text()') myArray += v.stringValue } Pero no sé cómo encontrar el nbOfValues .
Entonces creo que la solución del elemento DOM es más fácil.
Creo que tengo que hacer algo como document.getElementByPath('description)' pero no funcionó.
¿Alguna idea?