我有 javascript 代码从 xml 文件中提取网页信息并生成 html 并插入数据。这很好用。
getElementsByTagName("XmlNode")[0].childNodes[0].nodeValue;
当我将数据更改为 html 超链接块时,nodeValue 返回 null。
<XmlNode><a href='URL'>URL text</a></XmlNode>
是否有其他属性可用于返回此 XML 节点的内容?
我有 javascript 代码从 xml 文件中提取网页信息并生成 html 并插入数据。这很好用。
getElementsByTagName("XmlNode")[0].childNodes[0].nodeValue;
当我将数据更改为 html 超链接块时,nodeValue 返回 null。
<XmlNode><a href='URL'>URL text</a></XmlNode>
是否有其他属性可用于返回此 XML 节点的内容?
我发现这样做:
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;
}
您正在尝试获取 nodeValue<a>
而不是其中的文本节点。您可以将另一个 .childNodes[0] 添加到链中以获取文本节点,也可以使用 .textContent 代替 .nodeValue
您应该使用 CDATA 在您的 XML 节点中保存标记。
<![CDATA[ html mark up ]]>
<XmlNode><![CDATA[<a href='URL'>URL text</a>]]></XmlNode>