【发布时间】:2017-07-29 14:22:10
【问题描述】:
我有一个 PHP 脚本,它执行一个返回 XML 文件的 Web 服务调用。该过程的这一部分按预期工作。脚本中的后续步骤调用 XSLT 文件并尝试将 XML 转换为 HTML。
XSLT 文件似乎可以正常加载,但它无法匹配 XML 文件中的标签,因此 XML 文件中的值不会显示。 XML 文件中的层次结构非常简单。
这是一个存储在 PHP 变量中的 XML 文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<Data xmlns="http://www.digitalmeasures.com/schema/data" xmlns:dmd="http://www.digitalmeasures.com/schema/data-metadata" dmd:date="2017-03-08">
<Record userId="1600263" username="ppurfiel" termId="1484" dmd:surveyId="13740910">
<dmd:IndexEntry indexKey="COLLEGE" entryKey="Academic Affairs" text="Academic Affairs"/>
<PCI id="87603417088" dmd:lastModified="2017-02-13T16:30:56">
<PREFIX>Mr.</PREFIX>
<FNAME>Patrick</FNAME>
<PFNAME/>
<MNAME>John</MNAME>
.
.
.
</PCI>
</Record>
</Data>
这是我正在使用的 XSLT 文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="*">
<html>
<body bgcolor="lightgreen">
<h1>Digital Measures PCI Screen Info:</h1>
<B>Prefix: </B>
<xsl:value-of select="/Data/Record/PCI/PREFIX"/>
<br />
<B>First Name: </B>
<xsl:value-of select="/Data/Record/PCI/FNAME"/>
<br />
<B>Preferred First Name: </B>
<xsl:value-of select="/Data/Record/PCI/FNAME"/>
<br />
<B>Middle Name: </B>
<xsl:value-of select="/Data/Record/PCI/MNAME"/>
<br />
.
.
.
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我看到的输出显示了标题
数字测量 PCI 屏幕信息:
还有数据项标签,如“前缀:”和“名字:”,但不显示实际值。
我尝试通过搜索“web-services, xml, xslt, tag”来查找帮助,但没有找到任何有用的结果。
我的 XML 包含标签 <Data> 和 <Record>。这是我尝试过的第一个在 XML 中返回这些标签的 Web 服务。这些标签会不会造成问题?
我在我的 XSLT 文件中尝试了以下两种方法,但没有任何区别:
<xsl:template match="*">
<xsl:template match="/">
非常感谢任何和所有帮助。
【问题讨论】:
-
如果您认为这是 PHP 问题,请发布您的 PHP 代码。否则,删除标签。
标签: xml web-services xslt