使用XSLT的XML到XML,没有命名空间

约格什

当输入xml没有名称空间时,我可以将一个Xml转换为另一个,但是当输入xml具有名称空间时,我无法获得所需的输出。

Input.xml(W / O命名空间)

<?xml version="1.0" encoding="UTF-8"?>
<addressbook>
<address>
<addressee>John Smith</addressee>
<streetaddress>250 18th Ave SE</streetaddress>
<city>Rochester</city>
<state>MN</state>
<postalCode>55902</postalCode>
</address>
<address>
<addressee>Yogesh</addressee>
<streetaddress>Saligramam</streetaddress>
<city>Chennai</city>
<state>TAmil nadu</state>
<postalCode>600026</postalCode>
</address>
</addressbook>

Xsl

<?xml version="1.0" encoding="ISO-8859-1"?>
<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="/">
<xsl:element name="EmployeeDetail">
<xsl:apply-templates select="addressbook/address"/>
</xsl:element>
</xsl:template>
<xsl:template match="addressbook/address">
<xsl:element name="Employee" >
<xsl:value-of select="concat(city,'-',addressee,'-',postalCode)"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

Output.xml(W / O命名空间)

<?xml version="1.0" encoding="UTF-8"?><EmployeeDetail>
<Employee>Rochester-John Smith-55902</Employee>
<Employee>Chennai-Yogesh-600026</Employee>
</EmployeeDetail>

输入xml(带有命名空间)

<?xml version="1.0" encoding="UTF-8"?>
<addressbook xlmns="http:\\abc.com\Buspart">
<address>
<addressee>John Smith</addressee>
<streetaddress>250 18th Ave SE</streetaddress>
<city>Rochester</city>
<state>MN</state>
<postalCode>55902</postalCode>
</address>
<address>
<addressee>Yogesh</addressee>
<streetaddress>Saligramam</streetaddress>
<city>Chennai</city>
<state>TAmil nadu</state>
<postalCode>600026</postalCode>
</address>
</addressbook>

以上输入的Output.xml(带有命名空间)

<?xml version="1.0" encoding="UTF-8"?></EmployeeDetail>

如何使用上述输入(具有名称空间)检索结果?

汤姆·雷德芬

以下XSL起作用:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:f="http:\\abc.com\Buspart">
  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  <xsl:template match="/">
    <xsl:element name="EmployeeDetail">
      <xsl:apply-templates select="/f:addressbook/f:address"/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="/f:addressbook/f:address">
    <xsl:element name="Employee" >
      <xsl:value-of select="concat(f:city, '-', f:addressee, '-', f:postalCode)"/>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

这是因为通过在输入xml中添加名称空间,您不再可以通过本地名称引用XML元素,而是还必须指定路径名称空间uri部分(请参见http://en.wikipedia.org/wiki /XPath#Syntax_and_semantics_.28XPath_1.0.29

顺便说一句,您在输入xml中也有一个错字:xlmns应该是xmlns

输出:

<EmployeeDetail>
  <Employee>Rochester-John Smith-55902</Employee>
  <Employee>Chennai-Yogesh-600026</Employee>
</EmployeeDetail>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用具有命名空间的 R 解析 XML

来自分类Dev

使用 XmlWriter 的带有命名空间的 XML

来自分类Dev

有命名空间而没有命名空间

来自分类Dev

修改 xml 模式以添加 Root 元素并且没有命名空间

来自分类Dev

具有命名空间的XML到Pandas DF-Python

来自分类Dev

绑定到没有命名空间的类数据

来自分类Dev

带有命名空间的XML的XPath是什么

来自分类Dev

如何从具有命名空间的XML中获取节点

来自分类Dev

在 R 中解析嵌套的 XML(带有命名空间)

来自分类Dev

具有命名空间的 Linq XML Xelement 返回 Null

来自分类Dev

在具有命名空间的xml文档中使用html标签

来自分类Dev

在SQL Server 2008中使用xmlnamespaces读取具有命名空间的XML文件

来自分类Dev

根元素中的命名空间定义也具有命名空间-有效的XML?

来自分类Dev

如何在没有命名空间的情况下将 XML 字符串附加到 DOMDocument

来自分类Dev

为什么在使用命名空间指令时没有命名空间用作函数?

来自分类Dev

如何在LINQ to XML中选择带有命名空间的XML节点

来自分类Dev

XML :: LibXML问题发现具有命名空间的XML节点

来自分类Dev

如何从带有命名空间的XML元素中检索记录?

来自分类Dev

带有命名空间的 VB 2010 XML 文件导致问题

来自分类Dev

读取和写入具有命名空间的 XML 文件,而无需遍历每个元素

来自分类Dev

由于命名空间“ xmlns”,无法使用XSLT转换XML

来自分类Dev

如何使用XSLT替换XML中的前缀和命名空间

来自分类Dev

如何使用 xslt 更改 xml 中的命名空间

来自分类Dev

如何使用带有XML文件中命名空间的XSLT样式表展平分层XML文件

来自分类Dev

没有命名空间的Composer加载类

来自分类Dev

为什么ServiceStack MvcHtmlString没有命名空间

来自分类Dev

没有命名空间的JDOM XPath获取内部元素

来自分类Dev

查找没有命名空间的 PHP 文件列表

来自分类Dev

C++:实例化没有命名空间的对象

Related 相关文章

  1. 1

    使用具有命名空间的 R 解析 XML

  2. 2

    使用 XmlWriter 的带有命名空间的 XML

  3. 3

    有命名空间而没有命名空间

  4. 4

    修改 xml 模式以添加 Root 元素并且没有命名空间

  5. 5

    具有命名空间的XML到Pandas DF-Python

  6. 6

    绑定到没有命名空间的类数据

  7. 7

    带有命名空间的XML的XPath是什么

  8. 8

    如何从具有命名空间的XML中获取节点

  9. 9

    在 R 中解析嵌套的 XML(带有命名空间)

  10. 10

    具有命名空间的 Linq XML Xelement 返回 Null

  11. 11

    在具有命名空间的xml文档中使用html标签

  12. 12

    在SQL Server 2008中使用xmlnamespaces读取具有命名空间的XML文件

  13. 13

    根元素中的命名空间定义也具有命名空间-有效的XML?

  14. 14

    如何在没有命名空间的情况下将 XML 字符串附加到 DOMDocument

  15. 15

    为什么在使用命名空间指令时没有命名空间用作函数?

  16. 16

    如何在LINQ to XML中选择带有命名空间的XML节点

  17. 17

    XML :: LibXML问题发现具有命名空间的XML节点

  18. 18

    如何从带有命名空间的XML元素中检索记录?

  19. 19

    带有命名空间的 VB 2010 XML 文件导致问题

  20. 20

    读取和写入具有命名空间的 XML 文件,而无需遍历每个元素

  21. 21

    由于命名空间“ xmlns”,无法使用XSLT转换XML

  22. 22

    如何使用XSLT替换XML中的前缀和命名空间

  23. 23

    如何使用 xslt 更改 xml 中的命名空间

  24. 24

    如何使用带有XML文件中命名空间的XSLT样式表展平分层XML文件

  25. 25

    没有命名空间的Composer加载类

  26. 26

    为什么ServiceStack MvcHtmlString没有命名空间

  27. 27

    没有命名空间的JDOM XPath获取内部元素

  28. 28

    查找没有命名空间的 PHP 文件列表

  29. 29

    C++:实例化没有命名空间的对象

热门标签

归档