我有javascript代码从xml文件中提取网页信息并生成html并插入数据。这很有效。
getElementsByTagName("XmlNode")[0].childNodes[0].nodeValue;
当我将数据更改为html超链接块时,nodeValue返回null。
<XmlNode><a href='URL'>URL text</a></XmlNode>
是否还有其他属性可用于返回此XML节点的内容?
答案 0 :(得分:0)
您正在尝试获取<a>
的nodeValue而不是其中的文本节点。您可以将另一个.childNodes [0]添加到链中以转到文本节点,也可以使用.textContent代替.nodeValue
答案 1 :(得分:0)
您应该使用CDATA在XML节点中保留标记。
<![CDATA[ html mark up ]]>
<XmlNode><![CDATA[<a href='URL'>URL text</a>]]></XmlNode>
答案 2 :(得分:0)
我发现这样做了:
var xmlSerializer = new XMLSerializer();
function innerXml(node)
{
return xmlSerializer.serializeToString(node)
}
来源:http://forums.asp.net/t/1341879.aspx/1
编辑: 在做了一点研究后,我实际上使用了这个:
function innerXml(node)
{
var innerXml = "";
var nodes = node.childNodes;
for(q=0;q<nodes.length;q++)
{
if (typeof window.XMLSerializer != "undefined")
innerXml += xmlSerializer.serializeToString(nodes[q]);
else if (typeof nodes[q].xml != "undefined")
innerXml += nodes[q].xml;
}
innerXml = innerXml.trim();
return innerXml;
}