xml 相关问题

可扩展标记语言(XML)是一种灵活的结构化文档格式,用于定义人类和机器可读的编码规则。

优化查询 - PostgreSQL - XPATH

我的查询(PostgreSQL)可以正常工作。 将 xml_test 作为 ( 选择 ' 我的查询(PostgreSQL)可以正常工作。 with xml_test as ( select '<!--Build-Version: 1.564-REVb37dd024a8-20220530T1418--><tns:Message xsi:schemaLocation="https://appprod.be/Trivia/documents/Docs/XSDs/v1/T013 T013_v1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="https://appprod.be/Trivia/documents/Docs/XSDs/v1/T013"> <Header> <Agent>90015299</Agent> <SocialFund>299</SocialFund> <MessageId>T013</MessageId> <Timestamp RequestDate="2022-06-16T23:20:00" ProcessDate="2022-06-16T23:25:20" ResponseDate="2022-06-16T23:25:20"/> <Reference NRK="6e6806740a6ea06d7ca6ae7b31edeb8e" Requestor="90010299"/> <Result>OK</Result> <ReturnCode>ResponseOnly</ReturnCode> </Header> <Body> <Request> <TransmissionMethod>BULK</TransmissionMethod> <SocialFundCode>299</SocialFundCode> <FileNumber>9913894</FileNumber> <FiscalYear>2020</FiscalYear> <FiscalHouseHolds> <FiscalHouseHold> <Beneficiary>66090999038</Beneficiary> <FiscalPartners> <FiscalPartner>65120999956</FiscalPartner> </FiscalPartners> </FiscalHouseHold> <FiscalHouseHold> <Beneficiary>66090999038</Beneficiary> <FiscalPartners> <FiscalPartner>65120999956</FiscalPartner> <FiscalPartner>94013099924</FiscalPartner> </FiscalPartners> </FiscalHouseHold> </FiscalHouseHolds> </Request> </Body> </tns:Message>' as x ) select file_number , (xpath('//Beneficiary/text()', fiscal_household::xml))[1]::text benef , array_to_string( (xpath('//FiscalPartner/text()', fiscal_household::xml)), ' - ') fiscal_partners from ( select (xpath('/tnsMessage/Body/Request/FileNumber/text()', replace(x, ':','')::xml))[1]::text file_number , unnest(xpath('/tnsMessage/Body/Request/FiscalHouseHolds/FiscalHouseHold', replace(x, ':','')::xml))::text fiscal_household from xml_test ) temp ; 它给了我正确的结果,就是这些。 文件编号 好处 财政合作伙伴 9913894 66090999038 65120999956 9913894 66090999038 65120999956 - 94013099924 您可以看到我必须经历一个中间步骤并执行两次 SELECT。是否可以取消这个中间步骤?和/或优化这个查询? 感谢所有的灵感。 将财政家庭提取为笛卡尔积(即无约束连接)子查询。这实际上充当行级函数,将表达式附加到源输出。 请注意,我添加了一个新的第三个受益人以及新的fiscal_partners,以证明参照完整性得到了维护。 with xml_test as ( select '<!--Build-Version: 1.564-REVb37dd024a8-20220530T1418--><tns:Message xsi:schemaLocation="https://appprod.be/Trivia/documents/Docs/XSDs/v1/T013 T013_v1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="https://appprod.be/Trivia/documents/Docs/XSDs/v1/T013"> <Header> <Agent>90015299</Agent> <SocialFund>299</SocialFund> <MessageId>T013</MessageId> <Timestamp RequestDate="2022-06-16T23:20:00" ProcessDate="2022-06-16T23:25:20" ResponseDate="2022-06-16T23:25:20"/> <Reference NRK="6e6806740a6ea06d7ca6ae7b31edeb8e" Requestor="90010299"/> <Result>OK</Result> <ReturnCode>ResponseOnly</ReturnCode> </Header> <Body> <Request> <TransmissionMethod>BULK</TransmissionMethod> <SocialFundCode>299</SocialFundCode> <FileNumber>9913894</FileNumber> <FiscalYear>2020</FiscalYear> <FiscalHouseHolds> <FiscalHouseHold> <Beneficiary>66090999038</Beneficiary> <FiscalPartners> <FiscalPartner>65120999956</FiscalPartner> </FiscalPartners> </FiscalHouseHold> <FiscalHouseHold> <Beneficiary>66090999038</Beneficiary> <FiscalPartners> <FiscalPartner>65120999956</FiscalPartner> <FiscalPartner>94013099924</FiscalPartner> </FiscalPartners> </FiscalHouseHold> <FiscalHouseHold> <Beneficiary>66090999040</Beneficiary> <FiscalPartners> <FiscalPartner>65120990056</FiscalPartner> <FiscalPartner>94013000924</FiscalPartner> </FiscalPartners> </FiscalHouseHold> </FiscalHouseHolds> </Request> </Body> </tns:Message>' as x ) SELECT (xpath('/tnsMessage/Body/Request/FileNumber/text()', replace(x, ':','')::xml))[1]::text file_number , (xpath('//Beneficiary/text()', fiscal_household::xml))[1]::text AS benef , array_to_string( (xpath('//FiscalPartner/text()', fiscal_household::xml)), ' - ') fiscal_partners FROM xml_test, (SELECT unnest(xpath('/tnsMessage/Body/Request/FiscalHouseHolds/FiscalHouseHold', replace(x, ':','')::xml))::text AS fiscal_household FROM xml_test) A ; 产量 文件编号 好处 财政合作伙伴 9913894 66090999038 65120999956 9913894 66090999038 65120999956 - 94013099924 9913894 66090999040 65120990056 - 94013000924 需要注意的是,仅仅因为 2 阶段查询与 3 阶段查询在语法上可能更清晰,查询优化器最终可能仍会构建相同的计划。

回答 1 投票 0

我收到此警告“XMLObject 类型的 getAttribute(String) 方法已弃用”,setAttribute 也同样

不推荐使用 XMLObject 类型中的 getAttribute(string) 方法,并且不推荐使用 XMLObject 类型中的 setAttribute(string,String) 方法,请给我 getAttribute 和

回答 1 投票 0

如何在Python中更新/修改XML文件?

我有一个 XML 文档,我想在它包含数据后对其进行更新。 我考虑过以“a”(追加)模式打开 XML 文件。问题是新的数据会被写入...

回答 9 投票 0

创建 RTF 模板、XML BI 发布者报告

我有一个数据表 型号天数 GS 1 0 LX 1 0 ES 1 1 GS 2 0 LX 2 0 ES 2 0 GS 3 ...

回答 2 投票 0

简化无检查,无需重复 XML 路径

我正在尝试解析一些 XML,其中某些标签并不总是在 XML 中。我在尝试获取文本时遇到错误,因为当它为 None 时我无法获取 .text 看来应该有一个更好的...

回答 1 投票 0

为什么xmlbeans-maven-plugin似乎要求jdk 1.4更高,提供了jdk?

我正在将旧库迁移到 java 8(以及 11 和 17 之后),并且收到一条错误消息,提示我在构建服务器上使用的是 java 1.4(本地构建工作正常): 17:53:21 [信息] --- xmlbeans-maven-plugin:...

回答 2 投票 0

在 C# 中反序列化 XML 时出错

这是我的 C# 反序列化代码: 私人无效button1_Click(对象发送者,EventArgs e) { LandXML myObject; XmlSerializer mySerializer = 新的 XmlSerializer(典型...

回答 2 投票 0

选择用 <a> 和 <i> 标签包裹的复选框?

我正在尝试使用 is_selected() 方法检查是否选中了该复选框。我明白,由于我尝试验证的元素不是合法的复选框,因此这样验证它是不对的...

回答 1 投票 0

选择用 <a> 和 <i> 标签包裹的复选框?

我正在尝试使用 is_selected() 方法检查是否选中了该复选框。我明白,由于我尝试验证的元素不是合法的复选框,因此这样验证它是不对的...

回答 1 投票 0

如何将表格从 XML 匹配到 XSL

我想用正确的 XMl 标签填充表...我已经用标签编写了代码,但不知何故,当我将 XML 和 XSl 进行转换时,它没有用数据填充表...

回答 1 投票 0

Woocommerce 订单保存到保存每个产品的 XML 文件

我正在创建一个插件,它为每个订单创建一个带有结构的 XML 文件。但我无法将产品信息添加到订单中。我真的不知道我做错了什么。 我当前的代码...

回答 1 投票 0

创建新 XML 结构时出现 XSLT 代码问题

我正在尝试为以下要求编写XSLT,其中 /parent/queryCompoundEmployeeResponse/CompoundEmployee/person/person_id_external = /parent/row/PERSON_ID_EXTERNAL 然后 /paren 的内容...

回答 1 投票 0

为什么使用“schematool -initSchema”无法识别hive-site.xml中的“amps”

配置完Hive和mysql后,希望通过Hive自带的schematool工具来升级元数据。当我输入升级说明时,显示以下错误。我也我们...

回答 1 投票 0

JEditorPane 在显示包含 COMBINING MACRON 的 HTML 文件时挂起。解决方案?

我们的 XML 编辑器使用 JEditorPane 来显示使用样式表转换的 HTML。当传入的 XML 包含组合宏(例如 x̄)时,系统在 JEditorPane 渲染期间挂起,你...

回答 1 投票 0

从 xml 中删除声明的编码 = utf-8 的非 UTF-8 字符 - Java

我必须用Java处理这个场景: 我从客户端收到 XML 形式的请求,声明的编码为 utf-8。不幸的是,它可能不包含 utf-8 字符,并且需要

回答 7 投票 0

Android 无法实例化一个或多个类

我有一个正在运行的项目,所有 xml 文件都向我显示错误消息 Android 无法实例化一个或多个类。该程序仍然有效。 我清理了缓存并使用了invalidate...

回答 4 投票 0

如何用 Ansible 替换 XML 元素的文本?

下面的 XML 文件列出了 JAR 及其版本: 公共/foo-1.1.0.jar 下面的 XML 文件列出了 JAR 及其版本: <?xml version='1.0'?> <Files> <!-- ... --> <File Check="Y">public/foo-1.1.0.jar</File> <File Check="Y">public/bar-2.3.11.jar</File> </Files> 我需要将foo更新到版本1.2.1。我想使用 Ansible xml-module ——但我无法弄清楚语法,所以它会: 替换foo的任何现有条目(如果它引用不同版本)。 添加 foo 的新条目(如果不存在)。 可选:只为foo留下一个条目——具有指定的版本——即使之前有重复的条目(例如之前失败的升级尝试)。 我想到的唯一方法是使用两个任务:首先删除任何现有条目 (state=absent),然后创建一个新条目。 任何人都可以建议,如何一次性完成同样的事情? 尝试 powershell 脚本 using assembly System.Xml.Linq $input_filename = 'c:\temp\test.xml' $output_filename = 'c:\temp\test1.xml' $doc = [System.Xml.Linq.XDocument]::Load($input_filename) $files = $doc.Descendants('Files') $foos = [System.Linq.Enumerable]::Where($files, [Func[object,bool]]{ param($x) [string]$x.Value.StartsWith('public/foo')}) $pattern = '(public/foo-)(.*)(.jar)' $newVersion = '1.2.1' foreach($foo in $foos) { $version = $foo[0].Value $newValue = $version -replace $pattern, '$1xyz$3' $newValue = $newValue -replace 'xyz', "$newVersion" $foo.FirstNode.SetValue($newValue) } $doc.Save($output_filename)

回答 1 投票 0

Five9 的 API:如何使用 SOAP API 和基本身份验证提取报告

我们正在尝试使用其中的报告 API 从 Five9 的服务器访问数据。我们在下面编写了代码,但没有得到任何结果。对我来说,问题似乎出在 Five9 的身份验证上

回答 3 投票 0

带递归的 XSLT 转换

我需要将 XML 文档转换为 HTML。 输入 XML: 大家好! 我需要将 XML 文档转换为 HTML。 输入XML: <items> <item no="1" par_no="0" user="Mike">Hi all!</item> <item no="2" par_no="1" user="Jane">Hi...</item> <item no="3" par_no="2" user="Pit"> says: wasap man?</item> <item no="4" par_no="2" user="Karol">are you ok?</item> <item no="5" par_no="4" user="Nick">I think he's not in the mood.</item> <item no="6" par_no="5" user="Karol">I just ask a question.</item> <item no="7" par_no="1" user="Pit">says: how are you?</item> <item no="8" par_no="7" user="Mike">fine!</item> </items> 输出 HTML: <?xml version="1.0" encoding="UTF-8"?> <ul> <li><b>Mike</b> says: Hi all! <ul> <li><b>Jane</b> says: Hi... <li><b>Pit</b> says: wasap man? <li><b>Karol</b> says: are you ok? <ul> <li><b>Nick</b> says: I tihnk he's not in the mood. <ul> <li><b>Karol</b> says: I just ask a question. </ul> </li> </ul> </li> </ul> </li> <li><b>Pit</b> says: how are you? <ul> <li><b>Mike</b> says: fine! </ul> </li> </ul> </li> </ul> 我试图解决这个问题。我得到了代码。正在对行进行排序,但我无法获取附件。我的 XSL: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" /> <xsl:template match="items"> <html> <ul> <xsl:apply-templates select="item[@par_no=0]"/> </ul> </html> </xsl:template> <xsl:template match="item"> <xsl:variable name="varNo" select="@no"/> <li> <b><xsl:value-of select="@user"/></b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> </li> <xsl:apply-templates select="//items/item[@par_no=$varNo]"> <xsl:sort select="@par_no" data-type="number"/> </xsl:apply-templates> </xsl:template> </xsl:stylesheet> 我不知道在哪里插入标签才能得到这样的嵌套结构。请帮忙! 在 XSLT 3 中,您可以按如下方式解决: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="#all"> <xsl:output method="html" version="5.0" indent="yes"/> <xsl:template match="/"> <html> <head> <title>Test</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:key name="child" match="item" use="@par_no"/> <xsl:template match="items"> <ul> <xsl:apply-templates select="key('child', '0')"/> </ul> </xsl:template> <xsl:template match="item"> <li> <b><xsl:value-of select="@user"/></b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> <xsl:where-populated> <ul> <xsl:apply-templates select="key('child', @no)"/> </ul> </xsl:where-populated> </li> </xsl:template> </xsl:stylesheet> 密钥和模板在以前的版本中的工作方式相同,您需要将 xsl:where-populated 替换为检查 key('child', @no) 是否选择元素以输出 ul: <xsl:template match="item"> <li> <b><xsl:value-of select="@user"/></b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> <xsl:variable name="children" select="key('child', @no)"/> <xsl:if test="$children"> <ul> <xsl:apply-templates select="$children"/> </ul> </xsl:if> </li> </xsl:template> 我认为你可以简单地做(仅使用 XSLT 1.0): <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:key name="chld" match="item" use="@par_no" /> <xsl:template match="/items"> <ul> <xsl:apply-templates select="item[@par_no='0']"/> </ul> </xsl:template> <xsl:template match="item"> <li> <b> <xsl:value-of select="@user"/> </b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> <ul> <xsl:apply-templates select="key('chld', @no)"/> </ul> </li> </xsl:template> </xsl:stylesheet> 浏览器中显示的结果是: 是的,我致力于 XSLT 1.0。但我没有得到这个结果。在我的 Chrome 浏览器中,结果有所不同。不幸的是我无法发布图片(( 我需要像你的照片一样的结果! HTML: <ul> <li><b>Mike</b> says: Hi all! <ul> <li> <b>Jane</b> says: Hi... <ul> <li><b>Pit</b> says: asap man?</li> <li><b>Karol</b> says: are you ok? <ul> <li><b>Nick</b> says: I think he's not in the mood. <ul> <li><b>Karol</b> says: I just ask a question.</li> </ul> </li> </ul> </li> </ul> </li> <li><b>Pit</b> says: how are you? <ul> <li><b>Mike</b> says: fine!</li> </ul> </li> </ul> </li> </ul> 为什么说 Pit 会重复两次?

回答 3 投票 0

如何将图像缩放到顶部中心? - 安卓

我有一个图像视图作为背景。它比屏幕大。我想将其水平居中。它应该与顶部对齐。因此,原始图像的顶部应该在屏幕上看到。我可以调整大小

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.