可扩展标记语言(XML)是一种灵活的结构化文档格式,用于定义人类和机器可读的编码规则。
无法访问 XSLT 处理器 3.0 中已解析的未转义 XML 的子元素
使用 Saxon-HE 10.9 和 XSLT 3.0,我尝试转换嵌入在较大 XML 文件中的未转义 XML 字符串。我已经通过使用完成了这个 使用 Saxon-HE 10.9 和 XSLT 3.0,我尝试转换嵌入在较大 XML 文件中的未转义 XML 字符串。我通过使用完成了这个 <xsl:template match="INTERNAL_MATCH" mode="dataset"> <xsl:variable name="unescapedXML" select="parse-xml(.)"/> <TESTVAL> <xsl:element name="output-params2"> <xsl:copy-of select="//$unescapedXML" /> </xsl:element> </TESTVAL> </xsl:template> 输出如下: <TESTVAL> <output-params2> <product ism:ownerProducer="USA"> <name>Test Product</name> <shortName>TP</shortName> <base type="testtype" id="1235"/> <base type="testtype2" id="1236"/> </product> </output-params2> </TESTVAL> 但是,我想访问此输出的子节点,而不是能够按类型解析基本元素,if type = 'testtype',然后将其 id 存储为变量。 我该如何实现这个目标?我尝试做访问器 <xsl:copy-of select="//$unescapedXML/product/base" /> 但它什么也没返回。 按类型解析基本元素,如果 type = 'testtype' 则存储它的 id 给出以下输入: XML <INTERNAL_MATCH><product ownerProducer="USA"><name>Test Product</name><shortName>TP</shortName><base type="testtype" id="1235"/><base type="testtype2" id="1236"/></product></INTERNAL_MATCH> 这个样式表: XSLT 3.0 <xsl:stylesheet version="3.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="INTERNAL_MATCH"> <xsl:variable name="unescapedXML" select="parse-xml(.)"/> <TESTVAL> <output-params2> <xsl:value-of select="$unescapedXML/product/base[@type='testtype']/@id" /> </output-params2> </TESTVAL> </xsl:template> </xsl:stylesheet> 将返回: 结果 <?xml version="1.0" encoding="UTF-8"?> <TESTVAL> <output-params2>1235</output-params2> </TESTVAL> 重要: 我已从您的输入示例中删除了未声明的命名空间前缀 ism:。我假设在您的实际情况下,此前缀已正确声明并绑定到名称空间,否则您会收到错误而不是报告的结果。
我设计了一个继承自cardview的组件。由于某种原因,它在卡片下方显示了一种看起来错误的白色布局。我在图像中用红色矩形标记了它。 预览...
关于使用 XML,指示搜索字符串中存在通配符(星号和问号)而不在字符串中指定通配符的最有效和/或优雅的方式是什么...
我正在进行一个 Spring 4、java 8 项目,试图从之前的错误处理中恢复过来。 我的任务是恢复源代码管理中丢失的 Web 服务版本。我正在通过 de-
我对 XSLT 1.0 有一个独特的问题。下面是我的输入 XML。 XML: 15024734061$118.2307/15/2024]]> 是 氮 并输出 XML: 根据信用卡或借记卡标签的值为 Y,它应显示金额为 Cr...
使用 XML 和 Union ALL 的 Oracle SQL 排序依据
我写了一个这样的select语句: 选择 xmlagg(xmlelement(“物种”, xmlelement("类型",类型), xmlelement("名称",名称), xmlforest(案例...
如何在水平方向的recyclerview的左侧和右侧进行叠加?
我有一个显示尺寸的回收器视图。回收器视图是水平方向的。在回收器视图的左边和右边我想添加白色渐变阴影。 这是我使用的代码: 我有一个显示尺寸的回收器视图。回收器视图是水平方向的。在回收器视图的左边和右边我想添加白色渐变阴影。 这是我使用的代码: <androidx.recyclerview.widget.RecyclerView android:id="@+id/sizeRecyclerView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:layout_marginTop="10dp" android:orientation="horizontal" /> 您可以尝试在 Recyclerview 上方添加两个具有渐变背景的视图。 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="200dp"> <!-- Replace this TextView with RecyclerView --> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="MMMMMMMMMMMMM" android:textSize="35sp" /> <View android:layout_width="100dp" android:layout_height="match_parent" android:background="@drawable/gradient" android:focusable="false" app:layout_constraintStart_toStartOf="parent" /> <View android:layout_width="100dp" android:layout_height="match_parent" android:background="@drawable/gradient_backward" android:focusable="false" app:layout_constraintEnd_toEndOf="parent" /> </android.support.constraint.ConstraintLayout> drawable/gradient.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:endColor="#00FFFFFF" android:startColor="#FFFFFFFF" /> </shape> 可绘制/渐变_向后 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:angle="180" android:endColor="#00FFFFFF" android:startColor="#FFFFFFFF" /> </shape>
Jaxb 获取根据多个根元素 XSD 验证 XML 的根元素
我们有一个包含多个可能的根元素的 xsd。 要验证的 xml 可以采用其中任何一个,但显然每个 xml 一次。 我无法透露实际的 xsd,但让我们想象一下类似的东西: &l...
如何修复“通过 android.view.InflateException 膨胀类片段时出错:二进制 XML 文件”
每当我的家庭活动在模拟器中打开时,都会显示此错误: java.lang.RuntimeException:无法启动活动 组件信息{com.example.adsho/com.example.adsho.HomeActivity}: android.view.
对于要分发的 Linux 操作系统,我有一个 Openbox menu.xml 文件,其中包含大约 30 个单词,需要翻译这些单词才能本地化该菜单。我与两个同事组装了一个 .csv 文档...
我正在为我的网站创建 XML 站点地图,但我遇到了这个问题:您如何处理带有参数的 URL? 例如,我有一个用户个人资料页面,其网址为: https://www.
我尝试在为收件人签名期间禁用切换栏中的“查看证书 (PDF)”操作。我正在尝试通过主资源文件来完成此操作,因为我在
对我的业余 XML / XSLT 知识表示歉意 - 仍在学习。我希望我在下面提供了足够的细节。 我最近了解了如何使用 xsl“键”进行查找。我现在正在努力...
免责声明:我仍在学习 XML / XSLT,如果这很简单,我深表歉意。 我正在尝试查找节点 A 中的一个元素,将其与节点 B 中的相似元素进行匹配,然后从节点 B 返回一个条目到 no...
Woodstox 通过 SimpleXML 属性限制 - 如何设置它们?
我一直在尝试让 SimpleXML 读取巨大的 XML,但遇到了属性大小限制。 javax.xml.stream.XMLStreamException:超出最大属性大小限制 (524288) 在 com.ctc.wstx.sr.
我有一个带有两个按钮和一个数据输入字段的单屏应用程序。我正在尝试对数据字段实施条形码扫描,但不清楚扫描仪代码应该去哪里,因为 Sca...
刚刚使用 schxslt 使用 SaxonCS 编译的 xsl 文件对我的 xml 文件进行了验证。在 svrl 报告的输出中,失败的位置如下所示。 刚刚使用 schxslt 使用 SaxonCS 编译的 xsl 文件对我的 xml 文件进行了验证。在 svrl 报告的输出中,失败的位置如下所示。 <svrl:failed-assert location="/Q{http://www.edefter.gov.tr}defter[1]/Q{http://www.xbrl.org/2003/instance}xbrl[1]/Q{http://www.xbrl.org/int/gl/cor/2006-10-25}accountingEntries[1]/Q{http://www.xbrl.org/int/gl/cor/2006-10-25}entryHeader[298]" test="some-test"> <svrl:text>some-message</svrl:text> </svrl:failed-assert> 有没有可能的方法来检索带有命名空间的 xml 元素 <svrl:failed-assert location="/edefter:defter[1]/xbrli:xbrl[1]/gl-cor:accountingEntries[1]/gl-cor:entryHeader[298]" test="some-test"> <svrl:text>some-message</svrl:text> </svrl:failed-assert> 像这样。 我试图找到一种提供名称空间或导入模式的方法,但找不到方法。 编辑: 这是编译前svrl文件的命名空间 <xsl:transform version="2.0" xmlns="http://www.w3.org/1999/XSL/TransformAlias" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:error="https://doi.org/10.5281/zenodo.1495494#error" xmlns:schxslt="https://doi.org/10.5281/zenodo.1495494" xmlns:schxslt-api="https://doi.org/10.5281/zenodo.1495494#api" xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 这是编译后的 svrl 报告的命名空间 <svrl:schematron-output xmlns:defterek="http://www.edefter.gov.tr/ek" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:edefter="http://www.edefter.gov.tr" xmlns:error="https://doi.org/10.5281/zenodo.1495494#error" xmlns:gl-bus="http://www.xbrl.org/int/gl/bus/2006-10-25" xmlns:gl-cor="http://www.xbrl.org/int/gl/cor/2006-10-25" xmlns:gl-muc="http://www.xbrl.org/int/gl/muc/2006-10-25" xmlns:gl-plt="http://www.xbrl.org/int/gl/plt/2010-04-16" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:schxslt="https://doi.org/10.5281/zenodo.1495494" xmlns:schxslt-api="https://doi.org/10.5281/zenodo.1495494#api" xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" title="Yevmiye defteri dokumanlarını kontrol etmek için gerekli olan schematron kuralları"> <svrl:ns-prefix-in-attribute-values prefix="gl-plt" uri="http://www.xbrl.org/int/gl/plt/2010-04-16"/> <svrl:ns-prefix-in-attribute-values prefix="gl-cor" uri="http://www.xbrl.org/int/gl/cor/2006-10-25"/> <svrl:ns-prefix-in-attribute-values prefix="gl-bus" uri="http://www.xbrl.org/int/gl/bus/2006-10-25"/> <svrl:ns-prefix-in-attribute-values prefix="gl-muc" uri="http://www.xbrl.org/int/gl/muc/2006-10-25"/> <svrl:ns-prefix-in-attribute-values prefix="xbrli" uri="http://www.xbrl.org/2003/instance"/> <svrl:ns-prefix-in-attribute-values prefix="ds" uri="http://www.w3.org/2000/09/xmldsig#"/> <svrl:ns-prefix-in-attribute-values prefix="xades" uri="http://uri.etsi.org/01903/v1.3.2#"/> <svrl:ns-prefix-in-attribute-values prefix="edefter" uri="http://www.edefter.gov.tr"/> <svrl:ns-prefix-in-attribute-values prefix="defterek" uri="http://www.edefter.gov.tr/ek"/> 在您的 Schematron 中,您可以提供自己的 schxslt:location 函数,例如 <schema xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:schxslt="https://doi.org/10.5281/zenodo.1495494" queryBinding="xslt3"> <xsl:function name="schxslt:location" as="xs:string"> <xsl:param name="node" as="node()"/> <xsl:sequence select="string-join($node/ancestor-or-self::*!node-name(), '/')"/> </xsl:function> 该示例只是向您展示如何设置自己的函数,函数体不是您想要生成的带有位置谓词的路径的实现,而只是生成带有节点名称的路径。但是您可以根据您的需求调整该函数,但尝试模仿 path 函数结果的原始 Schxslt 实现位于 https://github.com/schxslt/schxslt/blob/main/core/src/main/资源/xslt/2.0/compile/compile-2.0.xsl#L185。在该代码中,您似乎只想输出元素节点的 Q{ 加上位置谓词,而不是 node-name() 命名空间-uri 和本地名称串联。
Schematron 中使用 schxslt 和 saxonCS 编译的 base-uri 函数
我有一个 xml 文件和 .sch 文件来验证此 xml 文件。但有一些规则叫。 base-uri() 函数返回 nu...
我想将ajax获取到的pbf格式的数据转换为浏览器中的osm格式(xml)数据。 尝试使用mapbox的pbf库,但没有成功。不知道是不是有问题...
我有一个 XML 文件,正在使用 oXygen 中的 XSLT 3.0 将其转换为 HTML。 假设我的输入文件如下所示: 首先我与约翰·史密斯交谈。 然后我 我有一个 XML 文件,正在使用 oXygen 中的 XSLT 3.0 将其转换为 HTML。 假设我的输入文件如下所示: <root> <p>First I spoke to John Smith.</p> <p>Then I talked with David Jones.</p> </root> 此外,我有一个术语列表,我想在转换过程中自动标记它们。它们位于单独的 XML 文件中,如下所示: <terms> <term>spoke</term> <term>talked</term> </terms> 我希望我的输出 HTML 看起来像这样: <body> <p>First I <span class="term">spoke</span> to John Smith.</p> <p>Then I <span class="term">talked</span> with David Jones.</p> </body> 当然,这可以通过正则表达式搜索和替换来完成,但我正在将数百个术语的列表与一本书长的文本进行整理,因此一次只执行一个是不可能的。我认为在我的 XSLT 中必须有一种自动化的方法来执行此操作。 在我看来,它可能起作用的一种方式是使用类似这样的东西,除了不是单个正则表达式搜索,我需要让它循环遍历其他 XML 文件中的元素的所有: <xsl:analyze-string> 或者是否有某种方法可以从术语列表中的 xsl:for-each 开始,并将其输入到 Replace() 函数中。但我不确定如何构建它,因此它会影响 XML 书籍的文本输出。 任何方向将不胜感激。抱歉我的无知;我还在学习中。 听起来你想要<xsl:template match="text()"> <xsl:analyze-string select="." regex="findmywords"> <xsl:matching-substring> <span class="term"> <xsl:value-of select="."/> </span> </xsl:matching-substring> <xsl:non-matching-substring> <xsl:value-of select="."/> </xsl:non-matching-substring> </xsl:analyze-string> </xsl:template> 。如果任何术语可能具有会影响正则表达式匹配的特殊字符,请使用 funtx 库中的 regex="{string-join(doc('terms,xml')//term, '|')}"。