这应该很简单,我读到的所有内容都说 select = "name" 应该在 xml 文档中选择所有具有 "name" 的节点。所以我试图做一个简单的例子。这是 XML :(它是一个简单的清单应用程序)。
<?xml version="1.0"?>
<inventory type="inventory">
<item type="zone" CanAdd="true">
<title>Building</title>
<item type="porch" CanAdd="true">
<title>Porch</title>
</item>
<item type="receptionRoom" CanAdd="true">
<title>Reception Room</title>
<item type="doorInfo" CanAdd="true">
<title>Door</title>
<item type="doorStyleType" select="multi">
<title>Door Style</title>
<item>
<title>Internal</title>
</item>
<item>
<title>Plain</title>
</item>
</item>
<item type="doorWinMaterialType" select="single">
<title>Door Material</title>
<item type="softwoodColours" select="single">
<title>Softwood - Stained</title>
<item>
<title>Stained Pine</title>
</item>
</item>
</item>
<item type="doorwinFurnitureType" select="multi">
<title>Door Furniture</title>
<item>
<title>Door Handle</title>
</item>
<item>
<title>LetterBox Opening</title>
</item>
</item>
</item>
</item>
</item>
<propertyName><![CDATA[2 Street, Village]]></propertyName>
<propertyRef><![CDATA[15p9]]></propertyRef>
</inventory>
.. 我需要开始用 XSLT 处理它。(在页面后面的 C# 代码中 - 该位起作用并将结果抛出到弹出窗口中。)
我正在使用的 XSLT 是:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<div>
<h2>My Inventory</h2>
<table border="1">
<tr>
<td>
<xsl:value-of select="inventory/propertyName" />
</td>
</tr>
<xsl:for-each select ="item">
<tr>
<td>
<xsl:value-of select="."/>
</td>
</tr>
</xsl:for-each>
</table>
<p>Hello world</p>
</div>
</xsl:template>
</xsl:stylsheet>
在 for-each 循环中找不到“item”节点,我想我已经遇到了心理障碍。我敢肯定,当您知道答案时,答案非常简单,但是目前我还没有并且需要先解决这个问题,然后才能继续说。输出是:(在浏览器中)..
My Inventory
2 Street, Village
(I expect a list of the "item" node values here in table rows..)
Hello world
非常感谢,布雷特