当前位置: 首页 > 知识库问答 >
问题:

XPATH,XSLT:由于架构不正确,转换失败

连昊天
2023-03-14

我需要转换传入的xml。xml开始:

        <?xml version="1.0" encoding="utf-8"?>
    <ExportDataSet xmlns="http://tempuri.org/ExportDataSet.xsd">
        <xs:schema id="ExportDataSet" targetNamespace="http://tempuri.org/ExportDataSet.xsd" xmlns:mstns="http://tempuri.org/ExportDataSet.xsd" xmlns="http://tempuri.org/ExportDataSet.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
            <xs:element name="ExportDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="Document">
<?xml version="1.0" encoding="utf-8"?>
<ExportDataSet xmlns:d2p1="http://www.w3.org/2001/XMLSchema">
    <xs:schema id="ExportDataSet" targetNamespace="http://tempuri.org/ExportDataSet.xsd" xmlns:mstns="http://tempuri.org/ExportDataSet.xsd" xmlns="http://tempuri.org/ExportDataSet.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
        <xs:element name="ExportDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">

因此,在开始时,xmlns=“http://tempuri.org/exportdataset.xsd”被更改为xmlns:d2p1=“http://www.w3.org/2001/xmlschema”,我使用的是Visual Studio生成的standart XSLT文件。in以:

        <?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="xml" indent="yes"/>

      <xsl:template match="ExportDataSet" >
        <xsl:element name="Declarations">
          <xsl:apply-templates select="Document" />
        </xsl:element>
      </xsl:template>

      <xsl:template match="Document">
...

有什么方法可以修改我的XSLT文件来处理原始XML,而不对其应用任何更改吗?提前感谢帮助!

共有1个答案

微生雨泽
2023-03-14

因此,感谢大家,我不得不使用前缀声明新模式http://tempuri.org/exportdataset.xsd,而不是对所有节点使用前缀:

<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:tmp="http://tempuri.org/ExportDataSet.xsd">
    <xsl:output method="xml" indent="yes"/>

  <xsl:template match="tmp:ExportDataSet" >
    <xsl:element name="Declarations">
      <xsl:apply-templates select="tmp:Document" />
    </xsl:element>
  </xsl:template>

  <xsl:template match="tmp:Document">

现在转型很好。

 类似资料:
  • 我被这个问题困了2天。我只想提取图像中标记的数据,以便通过XSLT进行转换。我在这个问题中也给出了XML文件。抱歉,如果这是一个非常愚蠢的问题。类似的路径,如//partyinformation/buyer/contact//name在文档中工作。但是//partyinformation/买主/联系人//姓名不起作用 到目前为止我已经试过了, //partyinformation/buyer/co

  • 我已经通过终端创建了新的react-native项目。 当我通过Xcode运行react-native应用程序时。我得到了这个错误。 /bin/sh-c\“/users/sumit/desktop/react\native/rnn/ios/build/build/invermentations/react.build/debug-iphonesimulator/double-conversion.

  • 请,任何人都可以帮助我找到正确的XPath来检索日期值“07/05/2018 04:45” 我试过但没有成功: /输入[@type=“text”]@值 //*[@id="start Date"]

  • 我正在尝试用Selenium在Java中创建ajax wait方法,以获取配置所定义的尽可能多的结果。 我是否应该担心XPath表达式不是snytax正确的,或者Selenium找不到那个webelement?这个例外对我来说是模棱两可的....

  • 你好,堆栈溢出的好程序员!我已经花了一个星期的时间来解决这个问题,现在非常渴望一个解决方案。 我正在使用android。应用程序。不要将片段与支持片段混淆。 我有6个子片段名为: <代码>片段一 碎片二 碎片三 碎片a 碎片b 显示子片段<代码>片段A、<代码>片段B和<代码>片段C。 我正在尝试转换/设置父片段和子片段的动画。子片段平稳过渡,如预期。然而,当我转换到一个新的父片段时,它看起来很糟

  • 我使用Gradle 4.10.2(但使用最新版本让它工作会很好)。这是我的gradle文件: 当我执行时,它会失败并出现很多错误。这些错误都是由于没有找到lombok自动生成的getter、setter等。如何解决这些错误?我看过其他关于这个问题的帖子,他们都建议将lombok依赖项添加为 使现代化 以下是我得到的几个错误: 日志应该来自注释。并且来自于在CarDto上注释的@Builder(Bu

  • 嗨,伙计们,我有一个错误,当我试图发送数组字符串与猫鼬模式其工作正常的标签,而不是selectedFile... 猫鼬模式: controller.js 类型js 对于测试,我将dammy值设置为[“imgar”],并收到以下错误消息:“PostMessage验证失败:selectedFile:在路径“selectedFile”处为值“['imgar']”(键入数组)转换为字符串失败 我能做什么?

  • 回溯(最近一次通话最后一次): [3/132]ACTION//chrome/android:chrome_java_resources(//build/tools chain/android:android_clang_arm)忍者:构建停止:子命令失败。 编辑 历史是一排。xml 乌尔希斯拉。JAVA 唯一的方法不是显示错误的整个类 我之前得到的错误突然消失,现在突然构建停止。 错误: ../.