У меня возникают проблемы со специальными символами, которые существуют в атрибуте узла xml. Чтобы бороться с этим, я пытаюсь отобразить атрибуты в качестве дочерних узлов и, при необходимости, использовать разделы cdata, чтобы обойти специальные символы. Проблема в том, что, похоже, я не могу правильно добавить раздел cdata, прикрепленный к узлу.Javascript, чтобы добавить раздел cdata на лету?
Я выполняю итерации по атрибутам исходного XML-узла и созданию новых узлов. Если attribute.name = "description", я хочу поместить атрибут.text() в раздел cdata и добавить новый узел. Вот где я прыгаю по трассе.
// newXMLData is the new xml document that I've created in memory
for (var ctr =0;ctr< this.attributes.length;ctr++){ // iterate over the attributes
if(this.attributes[ctr].name =="Description"){ // if the attribute name is "Description" add a CDATA section
var thisNodeName = this.attributes[ctr].name;
newXMLDataNode.append("<"+thisNodeName +"></"+ thisNodeName +">");
var cdata = newXMLData.createCDATASection('test'); // here's where it breaks.
} else {
// It's not "Description" so just append the new node.
newXMLDataNode.append("<"+ this.attributes[ctr].name +">" + $(this.attributes[ctr]).text() + "</"+ this.attributes[ctr].name +">" );
}
}
Любые идеи? Есть ли другой способ добавить раздел cdata?
Вот пример отрывок из источника ...
<row
pSiteID="4"
pSiteTile="Test Site Name "
pSiteURL="http://www.cnn.com"
ID="1"
Description="<div>blah blah blah since June 2007.&nbsp; T<br>&nbsp;<br>blah blah blah blah&nbsp; </div>"
CreatedDate="2010-09-20 14:46:18"
Comments="Comments example. " >
вот что я пытаюсь создать ...
<Site>
<PSITEID>4</PSITEID>
<PSITETILE>Test Site Name</PSITETILE>
<PSITEURL>http://www.cnn.com</PSITEURL>
<ID>1</ID>
<DESCRIPTION><![CDATA[<div>blah blah blah since June 2007.&nbsp; T<br>&nbsp;<br>blah blah blah blah&nbsp; </div ]]></DESCRIPTION>
<CREATEDDATE>2010-09-20 14:46:18</CREATEDDATE>
<COMMENTS><![CDATA[ Comments example. ]]></COMMENTS>
</Site>
Можете ли вы показать некоторые XML до и после добавления CDATA? – tj111
Если ваш XML не является корректным, тогда у вас есть две проблемы. – drudge
Это не помогает. Я пытаюсь создать хорошо сформированный xml из не очень хорошо сформированного xml. Следовательно, CDATA. –