Mark
Mark

Reputation: 4950

Javascript xml document and find

Let's say I have the following very simple XML fragment:

<assignmentOptions>
    <MessageCharacterLimit value="4000" type="integer"></MessageCharacterLimit>
</assignmentOptions>
<options>
    <MessageCharacterLimit value1="1000" type="integer"></MessageCharacterLimit>
    <MessageCharacterLimit value2="2000" type="integer"></MessageCharacterLimit>
</options>

How can I find all MessageCharacterLimit under <options>? MessageCharacterLimit is not unique, but options/MessageCharacterLimit is.

Thanks

Upvotes: 1

Views: 29

Answers (1)

baao
baao

Reputation: 73241

You can use querySelectorAll() for this:

var a = document.querySelectorAll('options > MessageCharacterLimit');
console.log(a)
<assignmentOptions>
    <MessageCharacterLimit value="4000" type="integer"></MessageCharacterLimit>
</assignmentOptions>
<options>
    <MessageCharacterLimit value1="1000" type="integer"></MessageCharacterLimit>
    <MessageCharacterLimit value2="2000" type="integer"></MessageCharacterLimit>
</options>

You may then loop over the collection you get like this:

var a = document.querySelectorAll('options > MessageCharacterLimit');
for (var i = 0; i<a.length; i++) {
    console.log(a[i].getAttribute('type'));
}
<assignmentOptions>
    <MessageCharacterLimit value="4000" type="integer"></MessageCharacterLimit>
</assignmentOptions>
<options>
    <MessageCharacterLimit value1="1000" type="integer"></MessageCharacterLimit>
    <MessageCharacterLimit value2="2000" type="integer"></MessageCharacterLimit>
</options>

Upvotes: 1

Related Questions