从TestLink XML文件中的CDATA中删除HTML标记

时间:2011-02-03 20:49:31

标签: html xml import cdata

我在TestLink中提取了一个XML文件(使用Export Test Suite功能)。我面临的问题是大多数摘要和步骤标签都是作为HTML代码提供的,嵌入在CDATA中。

因此这不是问题,但我需要将此文件转换为EXCEL表,以便导入Visual Studio Test Manager。当我尝试转换它时,它没有以正确的方式出现,并且数据仍然包含那些包含它的HTML标记,使其难以阅读。

我的问题是:有没有简单的方法从XML文件中删除那些CDATA和HTML标记?我尝试将其转换为Canonical格式,但这只删除了CDATA字符串而不是文件中的实际HTML标记。因此,让我更难将它们导出到EXCEL。

示例输入:

                <expectedresults><![CDATA[
                    1. <span style="font-size: 10pt; color: black; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><font face="Arial">Sample Text Which I want to Keep</font></span>
                    2. Sample Text Which I want to Keep
                    3. <font face="Arial"><span style="font-size: 10pt; color: black; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">Sample Text Which I want to Keep</span>
                    4. <span style="font-size: 10pt; color: black; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">Sample Text Which I want to Keep</span>
                    ]]>
                </expectedresults>

示例输出:

                <expectedresults>
                    1. Sample Text Which I want to Keep
                    2. Sample Text Which I want to Keep
                    3. Sample Text Which I want to Keep
                    4. Sample Text Which I want to Keep
                </expectedresults>

3 个答案:

答案 0 :(得分:1)

假设格式与您提到的完全一致。也许你可以编写一个宏来创建另一个excel,使用当前包含所有HTML标签的excel。

我认为可以有一个多步骤的过程来提取你需要的东西。

  1. 删除所有结束标记 - 因为这样可以使所有行的结尾清理。
  2. 查找每行中最后一次出现的“&gt;。请参阅此处的帮助http://www.mrexcel.com/archive/General/30895.html
  3. 使用RIGHT功能提取数据。
  4. HTH。

答案 1 :(得分:0)

  1. 导出TestLink测试用例XML文件后,将其导入Excel
  2. 在Excel中运行此宏以删除HTML标记和其他不需要的标记
  3.     Sub REMOVE_HTML()
        '
        ' REMOVE_HTML Macro
        ' Author: Hashan Randev Fernando
        ' Keyboard Shortcut: Ctrl+m
        '
            Cells.Select
            Selection.Copy
            Sheets.Add After:=Sheets(Sheets.Count)
            ActiveSheet.Paste
            Range("A1").Select
            Cells.Replace What:="<*>", Replacement:=" ", LookAt:=xlPart, SearchOrder _
                :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
            Cells.Replace What:="&gt;", Replacement:=">", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
            Cells.Replace What:="&lt;", Replacement:="<", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
            Cells.Replace What:="&quot;", Replacement:="'", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
            Cells.Replace What:="&nbsp;", Replacement:="  ", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
            Cells.Replace What:="&amp;", Replacement:="&", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
        End Sub
    

答案 2 :(得分:-1)

迟到的答案:尝试使用altova软件转换XML内容。你尤其需要MapForce模块 可提供30天的完整版评估。