我试图将Excel xml文件的一部分呈现为超文本标记语言,以便在翻译(外语翻译)计算机辅助翻译工具中的部分内容时改进预览。
我有以下xml:
<?xml version="1.0" encoding="utf-8"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<Styles>
<Style ss:ID="Default">
<Alignment ss:Vertical="Bottom"/>
</Style>
<Style ss:ID="Header">
<Font ss:Bold="1"/>
</Style>
<Style ss:ID="DateFormat">
<NumberFormat ss:Format="General Date"/>
</Style>
</Styles>
<Worksheet ss:Name="ResultSet">
<Table>
<Row>
<Cell><Data ss:Type="Number"><![CDATA[149768]]></Data></Cell>
<Cell><Data ss:Type="String"><![CDATA["@" cannot be the first character in an e-mail address!]]></Data></Cell>
<Cell><Data ss:Type="String"><![CDATA[Multiword - Noun]]></Data></Cell>
<Cell><Data ss:Type="String"><![CDATA[]]></Data></Cell>
<Cell><Data ss:Type="String"><![CDATA[]]></Data></Cell>
<Cell><Data ss:Type="String"><![CDATA[Input validation message]]></Data></Cell>
<Cell><Data ss:Type="String"><![CDATA[]]></Data></Cell>
</Row>
</Table>
</Worksheet>
</Workbook>
我试图从每行中提取第二个数据元素并显示它,但我根本无法显示它。我认为这与名称空间有关,我肯定遗漏了什么,但看不出是什么。这就是我正在使用的:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="/Workbook/Worksheet/Table/Row"><br/>
<font color="#380000" size="3"><xsl:value-of select="/Cell[2]/Data"/></font><br/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
有人能帮我吗?
我应该补充一点,我正在使用Treebeard来测试这个,它用这些错误验证xml(我无法控制)...增加了我的困惑:
错误:组织。xml。萨克斯。SAXParseException;行号:3;列数:10;文档无效:未找到语法。错误:组织。xml。萨克斯。SAXParseException;行号:3;列数:10;文档根元素“工作簿”必须与DOCTYPE root“null”匹配。
非常感谢。
实际上,这里有两个名称空间问题:
xmlns="urn: Schemas-microsoft-com: office:电子表格"
声明,但它们可能应该在XHTML命名空间中。urn: Schemas-microsoft-com: office:电子表格
中的元素。AFAIK,在XSLT 1.0中,这只能使用前缀完成。为了解决问题1。,您可以将默认命名空间声明更改为“xmlns”http://www.w3.org/1999/xhtml“或为此命名空间使用前缀。
要解决问题2。,您必须在XPath表达式中的所有元素名称前面加上与所需名称空间绑定的ss:。
还有另一个问题:XPath表达式/Cell[2]/Data
以/
开头,因此是绝对路径表达式。您想要一个相对的,所以省略斜杠。
我试图用XSLT处理器在PHP中转换xml文档,但我无法选择任何内容。。。我认为这是一个名称空间问题。如果我从一个干净的<代码> inputxml: Xsl-file: 我无法更改输入文件,因为它是由其他程序生成的。 安德烈
我有这个xml是架构版本3.0http://www.test.com/Service/v3。我需要将其降级到版本1http://www.test.com/Service/v1.为此,我使用XSL来转换它。 但我得到这样的结果 在我的输出XML中,我得到了这个 为什么将其添加到NS2:消息中? 它不在输入xml中。 我遗漏了一些东西。如果有人能指出这个问题,我将不胜感激。 我希望在输出中创建以下内容
我是XSLT的新手,命名空间有问题。这是我必须转换的XML: 我正在使用以下XSLT: 结果是: 我试图删除结果输入顺序中的名称空间,但它不适合我。有人能帮我学习XSLT吗?谢谢
我需要一个简单的xslt,它接受输入并提供如下所述的输出。我已经编写了xslt,但名称空间被忽略了。你能帮我一下吗。 输入消息: 预期输出消息: 实际输出消息: XSLT:
FuelPHP,做为一个 PHP 5.3+ 框架,很大程度依赖命名空间来分隔框架和你的应用程序的不同元件, to make the code as portable as possible, and to prevent any collisons in class names when you're moving bits of your application around. By defau
我正在尝试创建一个XSLT文件,我可以让它工作,而无需在任何一个文件中包含名称空间,但只要我在其中包含名称空间,它就会停止工作。以下是我正在使用的示例。 我的XML文件 我的转换文件。 我的结果 如果我将上述内容更改为此,则不会。我的新XML文件 我的新转换文件。 我现在在转换后的文件中没有数据了?如果这个问题是基本的,请原谅,我没有XSLT的经验,目前我正努力解决这个问题。