The short answer is they are interchangeable in this instance. In everyday, conversational English, no one is going to notice if you use one instead of the other. "Could" is the past tense of "can", so the choice in past tense is easy: It's always "could".
But "could" is also an auxiliary verb in its own right, indicating possibility. It's meaning is pretty much identical, then, to "can". But when I'm selecting which one to use, there are subtle differences. Mostly, I would say "could" if I want to imply that someone should do something.
Could you close those blinds?
Means I would like you to close those blinds, if it is possible for you to do so. The appropriate response is a physical one: closing the blinds.
Can you close the blinds?
Especially with slight stress on "can", I mean "Are you capable of closing those blinds?" The appropriate response is a yes or no.
However, I don't always get the response I'm expecting, because these meanings are not true rules, but debatable nuances of meaning.
In your example, the same kind of distinction comes up. At a strict reading, I would expect them to mean the same thing, and I would read around it for more context. But if I was writing it, I would select based again on minor nuance.
it could be the values of HTML heading nodes like H1, H2.
This says to me that there is a set of things which it could be, and that HTML heading nodes like H1 and H2 are in that set, but there may be other options too. In other words, it could be H1, H2, or something else entirely.
if can be the values of HTML heading nodes like H1, H2.
To me this says that the only things it can be are heading nodes like H1 and H2.
But this again is kind of an informal nuance and not a rule. If you used the word can, and then later went on to list other things it could be, I would not be confused.