从xmi文件中检索src值

时间:2015-01-07 09:05:18

标签: xslt

我有一组xml文件,我必须从中检索src之后的值。

示例:

<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.6/uma.ecore" xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.1" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.1" xmi:id="-ES_igec88m8mZhEXekVK3A" name="fs_evms,_zl9y8FCTEd6XXocT9rJgNQ" guid="-ES_igec88m8mZhEXekVK3A" changeDate="2009-08-01T13:54:29.422-0400" version="7.5.0">
  <mainDescription>&lt;p>&#xD;
    &lt;img alt=&quot;&quot; src=&quot;resources/IPMS_As-Is_75.jpg&quot; width=&quot;587&quot; height=&quot;346&quot; />&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>

 <sections xmi:id="_vlul8AKaEd6N9prBktGuYg" name="Update the opportunity information in Siebel" guid="_vlul8AKaEd6N9prBktGuYg">
    <sectionDescription>&lt;img alt=&quot;&quot; src=&quot;resources/UpdateOpportunity.JPG&quot; width=&quot;597&quot; height=&quot;360&quot; /></sectionDescription>
  </sections>

节点的层次结构和值非常从一个xml文件到另一个xml文件。请告诉我如何使用xslt从上面的数据中检索src的值。

此致 基兰

2 个答案:

答案 0 :(得分:0)

您可以直接访问任何类似的xml文件..

using System;
using System.IO;
using System.Xml;

public class Sample
{
public static void Main()
{

XmlDocument doc = new XmlDocument();
doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
            "<title>Pride And Prejudice</title>" +
            "</book>");

XmlElement root = doc.DocumentElement;

// Check to see if the element has a genre attribute. 
if (root.HasAttribute("genre")){
  String genre = root.GetAttribute("genre");
  Console.WriteLine(genre);

}

} }

答案 1 :(得分:0)

使用XSLT受到输入的严重限制,因为转义标记不是XML。您需要使用字符串函数提取所需的部分 - 例如:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>

<xsl:template match="/">
    <output>
        <xsl:for-each select="//*[contains(text(), 'src=&quot;')]">
            <url>
                <xsl:value-of select="substring-before(substring-after(., 'src=&quot;'), '&quot;')"/>
            </url>
        </xsl:for-each>    
    </output>
</xsl:template>

</xsl:stylesheet>