Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите прочитать CDATA в XML (https://javascript.ru/forum/misc/85318-pomogite-prochitat-cdata-v-xml.html)

Cleo 21.06.2023 16:14

Помогите прочитать CDATA в XML
 
Здравствуйте!

Помогите пожалуйста прочитать поле с CDATA в XMLке? =(
в нём планируется указывать код типа такого: <test>HelloWorld</test>

Мой XML:
Код:

<x tag="a1">
<![CDATA[<test>HelloWorld</test>]]>
</x>

<x tag="a2">
TEST NUMBER 2
</x>

<x tag="a3">
TEST NUMBER 3
</x>

</container>


JS код:
function searchXML()
        {
            
        xmlDoc=loadXMLDoc("z.xml");
   
        x = xmlDoc.getElementsByTagName('x');
 
        for (dd = 0; dd < x.length; dd++) {
        Tag = x[dd].getAttribute('tag');
        Value = x[dd].childNodes[0].nodeValue;
     
        AddList(Tag,Value);
  	}

Cleo 21.06.2023 16:18

So you could take childNodes[1], but it's a bit fragile... in particular it would break for an XML parser that turns CDATA sections into text, where you'd get a single Text child containing foo and all the whitespace. Probably better to take the textContent of the <data> element (except of course with fallback to innerText for IE).


Вот такой ответ нашёл на иностранном форуме
действительно если написать childNodes[1] то могу получить HelloWorld
но без тега <test> а вот дальше не очень понимаю =(

document.getElementById("results").innerHTML = x.textContent;

добавлял через textContent но не читает =(

Cleo 21.06.2023 20:16

вроде получилось вот так:
Value = x[dd].childNodes[1].textContent;

если вдруг кому-то понадобится


Часовой пояс GMT +3, время: 15:05.