xsl 转换中的 xml 命名空间 - 忽略空白?

发布于 2024-10-10 00:30:43 字数 801 浏览 1 评论 0原文

我是 xsl 新手,正在尝试编写一个模板将 xml 转换为 html。

我有一个 xml 文档开始

<?xml version="1.0" encoding="UTF-8"?>
 <data xmlns:autn="http://schemas.com/aci/" 
 xmlns="http://iptc.org/std/nar/2006-10-01/">
  <name>Bob</name>

,我的 xsl 模板开始

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"      
xmlns:autn="http://schemas.autonomy.com/aci/">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:template match="/"> 
...
<body>
<p>user name:</p>
<p><xsl:value-of select="data/name"/></p>

问题是,如果我这样做 对于 select 的值,我没有得到任何回报。

如果我这样做 我得到了“Bob”,但我丢失了所有 html。

我缺少什么?

I'm new to xsl and am trying to write a template to transform xml to html.

I have an xml document that begins

<?xml version="1.0" encoding="UTF-8"?>
 <data xmlns:autn="http://schemas.com/aci/" 
 xmlns="http://iptc.org/std/nar/2006-10-01/">
  <name>Bob</name>

and my xsl template begins

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"      
xmlns:autn="http://schemas.autonomy.com/aci/">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:template match="/"> 
...
<body>
<p>user name:</p>
<p><xsl:value-of select="data/name"/></p>

The problem is, if I do

I don't get anything back for the value-of select.

If I do

I get 'Bob' but I lose all my html.

What am I missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满身野味 2024-10-17 00:30:43

您缺少 XML 文档的默认命名空间:

xmlns="http://iptc.org/std/nar/2006-10-01/"

将其也添加到 XSLT:

<xsl:stylesheet version="1.0" 
  xmlns:mynamespace="http://iptc.org/std/nar/2006-10-01/"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"      
  xmlns:autn="http://schemas.autonomy.com/aci/">

并在 xsl:value-of 中使用该命名空间:

<xsl:value-of select="mynamespace:data/mynamespace:name" />

You are missing the default namespace of the XML document:

xmlns="http://iptc.org/std/nar/2006-10-01/"

Add it to the XSLT as well:

<xsl:stylesheet version="1.0" 
  xmlns:mynamespace="http://iptc.org/std/nar/2006-10-01/"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"      
  xmlns:autn="http://schemas.autonomy.com/aci/">

And use that namespace in the xsl:value-of:

<xsl:value-of select="mynamespace:data/mynamespace:name" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文