xsl:模板匹配未找到匹配项

2023-12-22

我正在尝试使用 .NET XslCompiledTransform 将一些 Xaml 转换为 HTML,但在让 xslt 匹配 Xaml 标记方面遇到了困难。例如,使用此 Xaml 输入:

<FlowDocument PagePadding="5,0,5,0" AllowDrop="True" NumberSubstitution.CultureSource="User" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <Paragraph>a</Paragraph>
</FlowDocument>

还有这个 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"
>

  <xsl:output method="html" indent="yes"/>

  <xsl:template match="/">
    <html>
      <body>
        <xsl:apply-templates />
      </body>
    </html>
  </xsl:template>

  <xsl:template match="FlowDocument">
    <xsl:apply-templates />
  </xsl:template>

  <xsl:template match="Paragraph" >
    <p>
      <xsl:apply-templates />
    </p>
  </xsl:template>

我得到这个输出:

<html>
    <body>
  a
</body>
</html>

而不是预期的:

<html>
   <body>
      <p>a</p>
   </body>
</html>

这可能是命名空间的问题吗?这是我第一次尝试 xsl 转换,所以我不知所措。


是的,这是命名空间的问题。输入文档中的所有元素都位于命名空间中http://schemas.microsoft.com/winfx/2006/xaml/presentation。您的模板正在尝试匹配默认命名空间中的元素,但没有找到任何元素。

您需要在转换中声明此命名空间,为其分配一个前缀,然后在任何旨在匹配该命名空间中的元素的模式中使用该前缀。所以你的 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" 
    xmlns:p="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    exclude-result-prefixes="msxsl"/>

<xsl:output method="html" indent="yes"/>

<xsl:template match="/">
  <html>
    <body>
      <xsl:apply-templates />
    </body>
  </html>
</xsl:template>

<xsl:template match="p:FlowDocument">
  <xsl:apply-templates />
</xsl:template>

<xsl:template match="p:Paragraph" >
  <p>
    <xsl:apply-templates />
  </p>
</xsl:template>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xsl:模板匹配未找到匹配项 的相关文章

  • 不要在 XSLT 中将 > 转换为 >

    我有一些 XML 看起来像
  • 键入时自动滚动 DataGridView

    我遇到这个问题 DataGridView 中的最后一列太长 您需要使用滚动条来显示该列的其余部分 但是当我输入文本时 它不会在输入时自动滚动 我想要的是 我想在打字时自动滚动滚动条 以便用户在打字时不必使用滚动条 这是图像 As you c
  • 向下投射通用元素类型

    public class ConfigControlBase
  • 为什么在此单元测试中,BackgroundWorker 没有在正确的线程上调用 RunWorkerCompleted?

    backgroundWorker 的全部目的是在执行耗时的任务后更新 UI 组件正如广告所宣传的那样在我的 WPF 应用程序中 但是在我的测试中 回调不会在调用线程上调用 Test public void TestCallbackIsInv
  • 如何防止打印屏幕

    我有一个要求 我正在开发的应用程序阻止用户轻松捕获屏幕内容 我已经表示 没有可行的方法可以完全防止这种情况发生 但我正在寻找方法来为这一过程引入一些障碍 我正在使用 C NET 2 0 和 WinForms 你不能 您能做的最好的事情就是在
  • DI Control-Freak 反模式:难以理解

    我正在阅读 Mark Seemann 写的 NET 中的依赖注入 但我无论如何也无法理解这一点 虽然new当涉及到 VOLATILE 时 关键字是一种代码味道 依赖性 您无需担心将其用于稳定 依赖性 这new一般来说 关键字不会突然变得 非
  • 为什么 JDOM 的 getChild() 方法返回 null?

    我正在做一个关于 html 文档操作的项目 我想要现有 html 文档中的正文内容将其修改为新的 html 现在我正在使用 JDOM 我想在我的编码中使用 body 元素 为此 我在编码中使用了 getChild body 但它向我的程序返
  • 最新的反应式扩展 (Rx) 教程

    我对反应式扩展非常感兴趣 但我找不到最新的教程 我开始于使用 NET 响应式扩展消除异步忧郁症 http go microsoft com fwlink LinkId 208528但它已经过时了 我可以找出一些改变 但我无法让很多例子发挥作
  • 如何通过 COM 将长数组从 VB6 传递到 C#

    我需要将 int 或 long 数组 无关紧要 从 VB6 应用程序传递到 C COM Visible 类 我尝试在 C 中声明接口 如下所示 void Subscribe MarshalAs UnmanagedType SafeArray
  • 在 .Net 中创建 EPUB

    有没有可以用来在 NET C 中创建 epub 文件的库 Flowdocument gt epub 转换工具将是理想的选择 但任何类型的库都很棒 我还对评估编写一个程序的复杂程度感兴趣 我知道它基本上是一堆压缩的 XHTML 文件 但我不断
  • 将 MSBuild 与外部 xml 参数文件结合使用

    如何让 MSBuild 任务使用外部 xml 参数文件中的参数 示例 将外部 xml 文件中的 MyConnectionStringParameter 用于我的 MSBuild 任务 MS构建文件
  • Solr 索引在分隔符上分割字段

    我正在尝试使用一些数据设置 Solr 索引 但是我想将我的字段之一作为管道分隔发送并在 Solr 端拆分 例如
  • 如何在不下载内容的情况下执行 GET 请求?

    我正在开发一个链接检查器 一般来说我可以执行HEAD请求 但是有些网站似乎禁用了这个动词 所以在失败时我还需要执行GET请求 仔细检查链接是否确实已失效 我使用以下代码作为我的链接测试器 public class ValidateResul
  • 如何使用 vb.net 将数据插入 Access 表?

    我想在 Access 数据库中插入一个新行 我正在考虑做类似的事情 oConnection new Connection connectionstring oTable oCennection table Orders oRow oTabl
  • 如何访问 Scala XML 中的父元素

    The scala xml包表示带有标记树节点的 XML 但是这棵树在 Scala 2 7 中是单向的吗 因为似乎没有办法访问Elem给定的父级Elem 这似乎同样适用于父母Document 例如 在 XOM 中你有getParent an
  • 数组与列表的性能

    假设您需要一个需要频繁迭代的整数列表 数组 我的意思是非常频繁 原因可能有所不同 但可以说它位于大容量处理的最内层循环的核心 一般来说 人们会选择使用列表 List 因为它们的大小具有灵活性 最重要的是 msdn 文档声称列表在内部使用数组
  • ELMAH 将其数据保存在哪里?

    我刚刚安装了 ELMAH MVC 更多信息here http nuget org packages Elmah MVC 并且想知道其数据保存在哪里 我读到您可以选择设置数据库进行存储 但似乎默认安装使用 内存中 它是如何工作的 如果我回收应
  • 使用 ElementTree 在 python 中解析 xml

    我对 python 很陌生 我需要解析一些脏的 xml 文件 这些文件需要先清理 我有以下 python 代码 import arff import xml etree ElementTree import re totstring wit
  • 为什么WCF中不允许方法重载?

    假设这是一个ServiceContract ServiceContract public interface MyService OperationContract int Sum int x int y OperationContract
  • 将文本从文本文件添加到 PDF 文件[重复]

    这个问题在这里已经有答案了 这是我的代码 using FileStream msReport new FileStream pdfPath FileMode Create step 1 using Document pdfDoc new D

随机推荐

  • 获取数组类型记录字段的长度

    我正在编写一个包装器用于与外部二进制 API 进行通信 API 使用 PDU 打包二进制记录 进行通信 字符串是 AnsiChar 数组并且以零结尾 type TSomePDU packed record StringField array
  • 如何在java Hibernate中更新主键

    我正在研究 Mvc 架构 我有 pojo 对象 我想更改主键 请你帮帮我 主键是 varchar 前任 Users users usersDao load mark 您永远不应该更改主键的值 主键定义了对象的身份 如果主键已更改 Hiber
  • PHP SOAP客户端调用带参数函数

    我创建了一个 SOAP 客户端 如下所示 client new SoapClient file wsdl 然后当我想调用API函数时 client gt Authenticate user password 我收到以下错误 格式化程序在尝试
  • 如何从 QuickBook(.qbw) 文件中查询一些数据?

    情况 我是 QuickBooks 世界的新手 我有一个 qbw文件 gt 公司名称 qbw 这是一个巨大的文件 几乎包含了有关我公司的所有信息 我要查询some该文件中的数据 不是全部 而是一些 假设我只想查询inventory repor
  • 球体上密度最高的位置

    我在球体表面有很多点 如何计算具有最大点密度的球体的面积 点 我需要非常快地完成这件事 例如 如果这是一个正方形 我想我可以创建一个网格 然后让点投票网格的哪一部分是最好的 我尝试将这些点转换为球面坐标 然后制作网格 这两种方法都效果不佳
  • 媒体播放器/录音机(声子)

    我想开发一个媒体播放器 录音机 主要目标平台是Windows 支持其他操作系统就更好了 但这不是一个高优先级 它应该能够播放 wav mp3 avi 等格式 它还应该能够录制音频 麦克风 和视频 网络摄像头或采集卡 由于我对 QT 和 C
  • 嵌入式软件 Misra 标准

    我需要使大量代码符合 MISRA 要求 第一个问题 有人可以给一个估计用于根据经验传递编写良好的嵌入式系统代码 我知道 写得好 的定义不明确且模糊 所以我要求进行原始估计 第二个问题 对可定制 即允许抑制特定警告 并在自动构建环境 即命令行
  • iOS:UIDatePicker“删除”最小和最大日期之外的日期

    我编写了一个简单的 UIDatePicker 其中包含最小和最大日期 我希望日期选择器不显示不可用的日期 而不仅仅是禁用它们 实际 您可以滚动浏览所有不可用的日期 但是当您停留在不可用的日期时 日期选择器会滚动到最接近的可用日期 这很好 但
  • 我的函数输入周围的这个框是什么?

    每当我编写自动完成的函数调用并开始输入内容时 就会在输入周围绘制一个黑色矩形 如下所示 为什么 eclipse 会这样做以及如何将其关闭 我查看了不同的编辑器设置 但没有找到任何描述此行为的内容 This is called place h
  • 这句话是什么意思? printf("[%.*s] ", (int) 长度[i],

    我正在阅读此页http dev mysql com doc refman 5 0 en mysql fetch row html http dev mysql com doc refman 5 0 en mysql fetch row ht
  • 为什么 git 无法在 Visual Studio Code 中运行?

    我已经在我的项目中安装了哈士奇 然后我跑了precommit命令 现在 当我运行git命令 它不起作用 而是问我你想如何打开该文件 所以 我使用删除了哈士奇npm prune然后从中删除 hooks 文件夹 git项目目录 但仍然没有帮助
  • 有没有办法调整 UITabBar 按钮项目的宽度以适应屏幕上超过 5 个按钮?

    我的按钮似乎被拉长了 尤其是在横向方向上 我无法在 UITabBar UITabBarViewController 或 UITabBarItem 本身上找到可调整的属性 当然 一个答案是购买 iPad 但这并不能解决对手机的需求 例如 考虑
  • 如何将事件附加到表单的 onSubmit 事件并链接早期附加的方法?

    我的申请有数百页 现在我必须附加一个事件disablePage on onSubmit的形式 我不想翻到每一页并写下
  • 疯狂中的 CheckoutController#edit 在哪里?

    我需要玩editCheckoutController 的操作 我在服务器日志中看到它 我在文档 http edgeguides spreecommerce com checkout html但我在 gem 的代码中找不到它 魔力在哪里 狂欢
  • 有没有办法将升压信号直接连接到另一个信号?

    我想知道是否有更好的方法将一类的升压信号直接连接到另一类的信号 例如想象一个门面类 https stackoverflow com questions 249581 explain facade pattern with c example
  • 如何在 R 中将模型拟合到没有噪声的数据(完美拟合)?

    如果我有以下数据集 df data frame x 1 10 y 3 4 exp x 1 10 我尝试适应nls model nls y a b exp x data df start list a 3 4 b 4 1 我收到错误 因为这是
  • 修复 Windows 8 和 10 中的 npm 路径

    已经做了很多谷歌搜索 尝试使用官方安装程序重新安装 node js 但我的 npm 路径仍然不起作用 这不起作用 npm install foo 我收到一条错误消息 指出缺少模块 npm cli js 经过 2 个小时的谷歌搜索后 我发现了
  • 异步获取大量资源并将它们“异步”保存到数据库中。使用哪种好的模式? (AFNetworking,核心数据)

    我需要用注释填充我的地图 每个注释都有相应的 Place 资源 这些资源是从远程服务器获取的 每个地点都有关联的类别 它也是作为单独的资源从服务器获取的 假设要填充给定区域 我需要获取 100 个位置 每个位置属于 20 个类别之一 实际上
  • 向 API 发出 get 请求时出现用户代理丢失错误

    我正在尝试使用新闻 API 创建一个项目 但不断收到 userAgentMissing 错误 我尝试了一些事情 但我不知道我做错了什么 我也尝试过使用 https request 方法 但结果是相同的 app get function re
  • xsl:模板匹配未找到匹配项

    我正在尝试使用 NET XslCompiledTransform 将一些 Xaml 转换为 HTML 但在让 xslt 匹配 Xaml 标记方面遇到了困难 例如 使用此 Xaml 输入