谁能帮我把XML文件转换为XSD和XSL文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁能帮我把XML文件转换为XSD和XSL文件?相关的知识,希望对你有一定的参考价值。

XML文件: 高手帮个忙啊,谢谢啦
<?xml version="1.0" encoding="UTF-8"?>
<游戏机>
<机种>
<p:掌机 xmlns:p="掌机之王">
<p:GB>
<推出时间>1989年4月</推出时间>
<所属公司>任天堂</所属公司>
<价格>300元</价格>
</p:GB>
<p:GBC>
<推出时间>1998年10月</推出时间>
<所属公司>任天堂</所属公司>
<价格>500元</价格>
</p:GBC>
<p:GBA>
<推出时间>2001年3月</推出时间>
<所属公司>任天堂</所属公司>
<价格>650元</价格>
</p:GBA>
<p:GBA-SP>
<推出时间>2003年2月</推出时间>
<所属公司>任天堂</所属公司>
<价格>750元</价格>
</p:GBA-SP>
<p:NDS>
<推出时间>2004年11月</推出时间>
<所属公司>任天堂</所属公司>
<价格>1000元</价格>
</p:NDS>
<p:NDSL>
<推出时间>2006年3月</推出时间>
<所属公司>任天堂</所属公司>
<价格>1300元</价格>
</p:NDSL>
<p:PSP>
<推出时间>2004年12月</推出时间>
<所属公司>SONY</所属公司>
<价格>1500元</价格>
</p:PSP>
</p:掌机>
<q:家用机 xmlns:q="游戏之王">
<q:PS>
<推出时间>2000年9月</推出时间>
<所属公司>SONY</所属公司>
<价格>100元</价格>
</q:PS>
<q:PS2>
<推出时间>2003年6月</推出时间>
<所属公司>SONY</所属公司>
<价格>1600元</价格>
</q:PS2>
<q:PS3>
<推出时间>2006年12月</推出时间>
<所属公司>SONY</所属公司>
<价格>5600元</价格>
</q:PS3>
</q:家用机>
</机种>
</游戏机>

参考技术A 爱莫能助 参考技术B 同情你 参考技术C 重命名 参考技术D 不会

XML 文件仅显示带有 DTD 而非 XSLT 的数据

【中文标题】XML 文件仅显示带有 DTD 而非 XSLT 的数据【英文标题】:XML file only shows data with DTD not XSLT 【发布时间】:2019-07-18 05:20:03 【问题描述】:

也许你可以帮我解决这个问题。我有一个附有 xsl 和 xsd 的 xml 文件。但是,我的 xsl 信息根本不会加载。它仅在我将我的 xml 文件链接到 dtd 时才有效,但不适用于 xsl。你们能帮我解决这个问题吗?提前致谢。

这就是我的 xml 文件的样子。

<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type='text/xsl' href='wishlist.xsl'?>
<coins 
    xmlns="https://www.w3schools.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://student.mccinfo.net/~armatsumura/wishlist.xsd">>
   <wish_list> 
        <coin_id>SGB123</coin_id>
        <issue_date>hi</issue_date>
        <category>American</category>
        <type>Antique</type>
        <value>$2000</value>
    </wish_list>
</coins>

这是我的 xsd 文件

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://student.mccinfo.net/~armatsumura/wishlist.xsd"
  xmlns="http://student.mccinfo.net/~armatsumura/wishlist.xsd"
  elementFormDefault="qualified">  
  <xs:element name="coins">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="wish_list"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="wish_list">
    <xs:complexType>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="coin_id"/>
        <xs:element ref="issue_date"/>
        <xs:element ref="category"/>
        <xs:element ref="type"/>
        <xs:element ref="value"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="coin_id" type="xs:string"/>
  <xs:element name="issue_date" type="xs:string"/>
  <xs:element name="category" type="xs:string"/>
  <xs:element name="type" type="xs:string"/>
  <xs:element name="value" type="xs:string"/>
</xs:schema>

这是我的 XSLT

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <head>
                <title>Wishlist</title>
                <link rel="stylesheet" href="coins.css"/>
            </head>
            <body>
                <ul>
                    <li><a href="http://student.mccinfo.net/~armatsumura/home.htm">Home</a></li>
                    <li><a href="http://student.mccinfo.net/~armatsumura/inventory.xml">Inventory</a></li>
                    <li><a href="http://student.mccinfo.net/~armatsumura/wishlist.xml">Wishlist</a></li>
                    <li><a href="http://student.mccinfo.net/~armatsumura/insurance.xml">Insurance</a></li>
                    <li><a href="http://student.mccinfo.net/~armatsumura/vendor.xml">Vendors</a></li>
                    <li><a href="mailto:armatsumura@mail.mccneb.edu">armatsumura.mail@mccneb.edu</a></li>
                </ul> 
                <center><h2>Wishlist</h2></center>
                <center><table border="1">
                    <tr bgcolor="#ffffff">
                        <th style="text-align:center">Coin ID</th>
                        <th style="text-align:center">Issue Date</th>
                        <th style="text-align:center">Category</th>
                        <th style="text-align:center">Type</th>
                        <th style="text-align:center">Value</th>
                    </tr>
                    <xsl:for-each select="coins/wish_list">
                        <tr>
                            <td><xsl:value-of select="coin_id"/></td>
                            <td><xsl:value-of select="issue_date"/></td>
                            <td><xsl:value-of select="category"/></td>
                            <td><xsl:value-of select="type"/></td>
                            <td><xsl:value-of select="value"/></td>
                        </tr>
                    </xsl:for-each>
                </table></center>
            </body>
        </html>
        
        
    </xsl:template>    
    
</xsl:stylesheet>

【问题讨论】:

【参考方案1】:

几件事..

如果您在 FireFox 等浏览器中对此进行测试,那么您的 XML 需要符合 XPath 1.0 规范。你可以在这里阅读:What browsers support Xpath 2.0?

根据上面的链接,您的声明应如下所示,注意对第一个命名空间的更改,现在是 xmlns:cs。这将提供一个命名空间前缀。另外,你有一个额外的'>',可能想删除它:)

<coins 
    xmlns:cs="https://www.w3schools.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://student.mccinfo.net/~armatsumura/wishlist.xsd">

然后在您的 XSLT 中,您可以添加“前缀”命名空间,使 XSLT 看起来像这样,再次注意前缀命名空间的新行

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:cs="https://www.w3schools.com">

接下来,根选择器应该是 /*,这样它会选择根下的所有内容,您也可以将 /* 替换为根的名称,但这是个人偏好类型的东西。

<xsl:template match="/*">

最后,我认为 XSD 与这个问题无关,XSD 用于验证 XML 文件的“正确性”,它是否包含所需的元素,数据类型是否正确等;但我在您的 XSL 定义中没有看到类似的内容。

如果这有帮助,请告诉我。

【讨论】:

以上是关于谁能帮我把XML文件转换为XSD和XSL文件?的主要内容,如果未能解决你的问题,请参考以下文章

谁能帮我把百度编辑器写入php的一个页面

根据给定的XSD将XML文件转换为另一个

在 XSL 中将地理坐标从度-小时-分钟转换为十进制

谁能帮我将 Access Query 转换为 MS SQL Query

谁能帮我知道如何将 ags xmpp 联系人列表添加到 XML 文件并从中显示到列表视图中

谁能帮我把我的 SQL 连接到这个源代码它对我不起作用