+ -
当前位置:首页 → 问答吧 → 怎么提取xml中得html内容?!

怎么提取xml中得html内容?!

时间:2003-03-02

来源:互联网

比如我现在有一个xml文件
<?xml version="1.0" encoding="gb2312" ?>
<Messages>
        <Message>
                <MsgFrom>宝玉</MsgFrom>
                <MsgTo>123</MsgTo>
                <MsgTime>2003-3-2</MsgTime>
                <MsgContent><img src='http://bbs.51js.com/images/standard/51js.gif' width='100'/>dddd</MsgContent>
        </Message>
</Messages>
我想把节点MsgContent中得内容全部提取出来::mad:
<img src='http://bbs.51js.com/images/standard/51js.gif' width='100'/>dddd

作者: 宝玉   发布时间: 2003-03-02

直接在xsl中写吧,我也不知道怎么取

作者: 一介布衣   发布时间: 2003-03-03

<script>
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("a.xml");
var nodes=xmlDoc.documentElement.childNodes(0).childNodes;
alert(nodes.item(3).text);
</script>

其中注意应该把a.xml里面的img的标签格式化下
<?xml version="1.0" encoding="gb2312" ?>
<Messages>
        <Message>
                <MsgFrom>±¦Óñ</MsgFrom>
                <MsgTo>123</MsgTo>
                <MsgTime>2003-3-2</MsgTime>
                <MsgContent>&lt;img src='http://bbs.51js.com/images/standard/51js.gif' width='100'/&gt;dddd</MsgContent>
        </Message>
</Messages>

作者: flashsoft   发布时间: 2003-03-03

后来我发现只要把<替换成&lt;; >替换成&gt;就完全可以了:)

[ 本贴由 宝玉 于 2003-3-3 18:32 最后编辑 ]

作者: 宝玉   发布时间: 2003-03-03

而用flashsoft的方法因为是用nodes.item(3).text方法所以不能提取出html内容

作者: 宝玉   发布时间: 2003-03-03

倒,上面的代码可以得到你要的呀
真郁闷

作者: flashsoft   发布时间: 2003-03-04

真的不能得到<img src='http://bbs.51js.com/images/standard/51js.gif' width='100'/>dddd

只可以显示dddd
不信你试试

作者: 宝玉   发布时间: 2003-03-04

是只能取得dddd

如果只取这个的话XML很容易办到,不用javascript脚本的

作者: 52it   发布时间: 2003-03-05



QUOTE:
[i]宝玉[/i] 于 2003-3-3 18:30 写道:
后来我发现只要把<替换成&lt;; >替换成&gt;就完全可以了:)

我也是说这样做呀

作者: flashsoft   发布时间: 2003-03-05

是我理解错:)

谢谢大家

作者: 宝玉   发布时间: 2003-03-05

更简单的方法,或者说更符合XML规范的方法,用CDATA关键词

<?xml version="1.0" encoding="gb2312" ?>
<Messages>
        <Message>
                <MsgFrom>456</MsgFrom>
                <MsgTo>123</MsgTo>
                <MsgTime>2003-3-2</MsgTime>
                <MsgContent><![CDATA[<img src='http://bbs.51js.com/images/standard/51js.gif' width='100'/>]]>dddd</MsgContent>
        </Message>
</Messages>

[ 本贴由 52it 于 2003-3-7 08:25 最后编辑 ]

作者: 52it   发布时间: 2003-03-07

如下例:
<BODY>
<H1>XML数据岛</H1>
<XML ID="example">
<?xml version="1.0"?>
<books>
  <book>book1</book>
  <book>book2</book>
  <book>book3</book>
  <book><![CDATA[<img src='http://bbs.51js.com/images/standard/51js.gif' width='100'>]]>book4</book>
</books>
</XML>
<TABLE DATASRC="#example" border=1>
   <TR><TD><SPAN DATAFLD="$text"></SPAN></TD></TR>
</TABLE>
</BODY>
在book4处显示不出前面的图像!?

作者: zengh   发布时间: 2003-03-25

<BODY>
<H1>XML数据岛</H1>
<XML ID="example">
<?xml version="1.0"?>
<books>
  <book>book1</book>
  <book>book2</book>
  <book>book3</book>
  <book><![CDATA[<img src='http://bbs.51js.com/images/standard/51js.gif' width='100'>]]>book4</book>
</books>
</XML>
<TABLE DATASRC="#example" border=1>
   <TR><TD><SPAN DATAFLD="$text" DATAFORMATAS=HTML></SPAN></TD></TR>
</TABLE>
</BODY>

DATAFORMATAS=HTML只支持span和div、marquee

作者: zengh   发布时间: 2003-03-25

宝玉问题的正解:<xsl:copy>

[ 本贴由 imafool 于 2003-4-6 11:24 最后编辑 ]

作者: imafool   发布时间: 2003-04-03

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
        <xsl:output media-type="text/html" method="html" indent="yes" encoding="gb2312" />
        <xsl:template match="/Messages">
                <xsl:copy-of select="/Messages/Message/MsgContent" />
        </xsl:template>
</xsl:stylesheet>

对 /Messages 匹配模板而没有任何内容,不相关的内容被过滤掉,如果需要,可以将
output 的 media-type 改成 text/xml,进行二次过滤
如果只要图片,将 copy-of 的 select 参数改成 /Messages/Message/MsgContent/Img
如果只要文字,将 copy-of 的 select 参数改成 /Messages/Message/MsgContent/text()

作者: snakevil   发布时间: 2003-04-16

真不错,正是我要解决的难题,偶结合ASP,用正则表达式,实现了UBB功能
请看这里

http://www.f1.sh.cn/web/data/2003-5-10/2003-5-10_19_06_48.htm

作者: 上水道的   发布时间: 2003-05-10

good

作者: cxqlnf   发布时间: 2003-05-14

DATAFORMATAS=HTML怎么用在XMLDOM显示的xml页面中呢?

作者: 快乐点心   发布时间: 2006-01-06

热门下载

更多