0

我有 javascript 代码从 xml 文件中提取网页信息并生成 html 并插入数据。这很好用。

getElementsByTagName("XmlNode")[0].childNodes[0].nodeValue;

当我将数据更改为 html 超链接块时,nodeValue 返回 null。

<XmlNode><a href='URL'>URL text</a></XmlNode>

是否有其他属性可用于返回此 XML 节点的内容?

4

3 回答 3

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;
}
于 2013-03-27T18:58:55.223 回答
0

您正在尝试获取 nodeValue<a>而不是其中的文本节点。您可以将另一个 .childNodes[0] 添加到链中以获取文本节点,也可以使用 .textContent 代替 .nodeValue

于 2013-03-27T18:45:24.397 回答
0

您应该使用 CDATA 在您的 XML 节点中保存标记。

<![CDATA[  html mark up  ]]>


<XmlNode><![CDATA[<a href='URL'>URL text</a>]]></XmlNode> 
于 2013-03-27T18:47:40.617 回答