xml 相关问题

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

如何使用 python 比较 XML 布局与 XML 财政票据

作为一个开发新手,我是否可能走错话题了,如果是这样的话,抱歉。我一直在编写一个 Python 脚本,用于验证 XML 财政票据是否兼容...

回答 1 投票 0

如何使用 XmlElementAttribute 类在 C# 中发布 XML 数据

我有一些像这样的 XML 数据要发布在 httpPost 上: 我有一些像这样的 XML 数据要发布在 httpPost 上: <logindetail> <player account="IDR" country="IN" firstName="" lastName="" userName="" nickName="" tester="1" partnerId="LION8" commonWallet="0"></player> <partners> <partner partnerId="" partnerType="0" /> <partner partnerId="" partnerType="1" /> <partner partnerId="" partnerType="1" /> </partners> </logindetail> 我发布请求的代码在 C# 中是这样的: string reqBody = xmlData; var result = HttpPost(ApiUrl, xmlData, "text/xml"); 如何将 XML 数据设置为 reqBody 以将其发布到 httpPost 上? 使用 HttpClient 进行 Http Post 请求的简单代码: using System; using System.Net.Http; async Task<string> HttpPostAsync(string url, string data , string mediaType) { using (var httpClient = new HttpClient()) { var request = new HttpRequestMessage(); request.Method = HttpMethod.Post; request.RequestUri = new Uri(url); request.Content = new StringContent(data, Encoding.UTF8, mediaType); var responseMessage = await httpClient.SendAsync(request); return await responseMessage.Content.ReadAsStringAsync(); } } 使用示例: var xmlData = @"<logindetail> <player account=""IDR"" country=""IN"" firstName="""" lastName="""" userName="""" nickName="""" tester=""1"" partnerId=""LION8"" commonWallet=""0""></player> <partners> <partner partnerId="""" partnerType=""0"" /> <partner partnerId="""" partnerType=""1"" /> <partner partnerId="""" partnerType=""1"" /> </partners> </logindetail>"; var response = await HttpPostAsync("https://httpbin.org/post", xmlData, "Text/xml");

回答 1 投票 0

IE11 XSLT 将 <param> 节点转换为自闭标签而不关闭

这个问题与此非常相关 输出到 DOM 时,XSLT 将 节点转换为 标签 考虑这段代码: <question vote="0"> <p>这个问题与此非常相关 <a href="https://stackoverflow.com/questions/78266294/xslt-converts-image-node-to-img-tag-when-outputiing-to-dom">XSLT 在输出到 DOM 时将 <image> 节点转换为 <img> 标签</a></p> <p>考虑这段代码:</p> <pre><code>&lt;script type=&#34;application/xml&#34; id=&#34;data&#34;&gt; &lt;xsl:copy-of select=&#34;/*&#34; /&gt; &lt;/script&gt; </code></pre> <p>这会将 XML 文档的内容输出到 html 页面中。 然后,可以很容易地通过 javascript 的 DOMParser() 对象解析 XML 中的数据,从而可以在网页上轻松访问这些数据,而无需使用 XSLT 生成网页。</p> <p>需要在脚本标签之间移动 <xsl:copy-of select"/*" />,以防止 XSLT 转换器将 XML 文件中的节点转换为 HTML 中的标签。</p> <p>这工作得很好,直到我发现节点也发生了同样的情况。简单地说:如果 XML 有节点,输出将被破坏且无法解析,如下所示:</p> <p><a href="https://i.stack.imgur.com/Ns44i.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL05zNDRpLnBuZw==" alt=""/></a></p> <p>如何防止这种行为?如何阻止浏览器引擎使标签成为自关闭标签?</p> <pre><code>new DOMParser().parseFromString() </code></pre> <p>/\ 不适用于自关闭节点。 (<strong>澄清</strong>:显然 DOMParser 将与自关闭节点一起工作,只是在这种情况下它不是自关闭的,即 - 没有正斜杠)</p> <hr/> <p>好的,这里是重现此内容所需的文件:</p> <p>测试.xslt</p> <pre><code>&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt; &lt;xsl:stylesheet xmlns:xsl=&#34;http://www.w3.org/1999/XSL/Transform&#34; version=&#34;1.0&#34;&gt; &lt;xsl:output method=&#34;html&#34; indent=&#34;no&#34; version=&#34;5.0&#34; /&gt; &lt;xsl:template match=&#34;/&#34;&gt; &lt;xsl:text disable-output-escaping=&#39;yes&#39;&gt;&amp;lt;!DOCTYPE html&gt;&lt;/xsl:text&gt; &lt;xsl:apply-templates select=&#34;root&#34; /&gt; &lt;/xsl:template&gt; &lt;xsl:template match=&#34;root&#34;&gt; &lt;html&gt; &lt;head&gt; &lt;script type=&#39;application/xml&#39;&gt; &lt;xsl:copy-of select=&#34;/*&#34; /&gt; &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div&gt;qwe&lt;/div&gt; &lt;/body&gt; &lt;/html&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p>测试.xml</p> <pre><code>&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt; &lt;?xml-stylesheet type=&#34;text/xsl&#34; href=&#34;test.xslt&#34;?&gt; &lt;root&gt; &lt;object&gt; &lt;text&gt;text&lt;/text&gt; &lt;param name=&#34;name&#34;&gt;&lt;/param&gt; &lt;/object&gt; &lt;/root&gt; </code></pre> <p>在 Internet Explorer 11 兼容模式下使用 Edge 打开 test.xml。 “head”应该包含一个带有扭曲 xml 的脚本。</p> <p><a href="https://i.stack.imgur.com/N6RRV.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL042UlJWLnBuZw==" alt=""/></a></p> <p>在 Windows 10 上,打开 xml 文件后,您可以通过执行“运行 (Win+R)”->“%systemroot%\system32 12\IEChooser.exe”来打开开发人员工具</p> </question> <answer tick="true" vote="1"> <p>至于我的建议,要使用该库进行序列化,其外观如下(在实际使用中,不要通过 HTTP(S) 导入,请使用本地副本 <pre><code>xsl:import</code></pre>):</p> <pre><code>&lt;xsl:stylesheet xmlns:xsl=&#34;http://www.w3.org/1999/XSL/Transform&#34; version=&#34;1.0&#34;&gt; &lt;xsl:import href=&#34;https://lenzconsulting.com/xml-to-string/xml-to-string.xsl&#34;/&gt; &lt;xsl:output method=&#34;html&#34; indent=&#34;no&#34; version=&#34;5.0&#34; doctype-system=&#34;about:legacy-doctype&#34; /&gt; &lt;xsl:template match=&#34;/&#34;&gt; &lt;xsl:apply-templates/&gt; &lt;/xsl:template&gt; &lt;xsl:template match=&#34;root&#34;&gt; &lt;html&gt; &lt;head&gt; &lt;script type=&#39;application/xml&#39;&gt; &lt;xsl:apply-templates select=&#34;.&#34; mode=&#34;xml-to-string&#34;/&gt; &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div&gt;qwe&lt;/div&gt; &lt;/body&gt; &lt;/html&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p>这应该给你一个 <pre><code>script</code></pre> 元素,它的文本/CDATA 内容具有输入文档的 <pre><code>root</code></pre> 元素的序列化。</p> <p>至于序列化空元素的方式,在 XML 中应该不重要,但库允许您设置 <pre><code>&lt;xsl:param name=&#34;use-empty-syntax&#34; select=&#34;false()&#34;/&gt;</code></pre> 来获取例如<pre><code>&lt;param name=&#34;name&#34;&gt;&lt;/param&gt;</code></pre>。</p> </answer> </body></html>

回答 0 投票 0

为什么我无法从此活动转到任何其他活动?

我正在 Android Studio 中开发移动 Java 应用程序。我创建了几个活动、一个在它们之间导航的菜单和一个位于每个页面顶部的工具栏。但是,当

回答 1 投票 0

芯片组第二行重叠

现在我有一个包含 4 个芯片的芯片组,并且它的布局大小正确(意味着它没有获得整个屏幕宽度),当第四个芯片中的文本变得太长时,它会将其移动到那个...

回答 2 投票 0

Delphi 的“XML 数据绑定接口”功能在“列表项”上无法按预期工作

我已使用 Delphi 的“XML 数据绑定接口”从 XSD 文件创建 XML 文件,但我未能使其生成遵循所请求结构的输出。 发生这种事...

回答 1 投票 0

如何降低 svg 滤镜中 alpha 层的不透明度?

我正在尝试创建一个 SVG 徽标。我从 Illustrator 导出了该文件。徽标上有阴影。我正在查看 XML,找到了过滤器节点 我正在尝试创建一个 SVG 徽标。我从 Illustrator 导出了该文件。徽标上有阴影。我查看了 XML,发现了过滤器节点 <filter filterUnits="objectBoundingBox" width="200%" height="160%" x="-15%" y="-15%" id="AI_Shadow_2"> <feGaussianBlur stdDeviation="2" result="blur" in="SourceAlpha"></feGaussianBlur> <feOffset result="offsetBlurredAlpha" in="blur" dy="0" dx="0"></feOffset> <feMerge> <feMergeNode in="offsetBlurredAlpha"></feMergeNode> <feMergeNode in="SourceGraphic"></feMergeNode> </feMerge> 有没有办法改变生成的offsetBlurredAlpha的alpha?我不希望它从纯黑色开始,我希望它从 50% 黑色开始,以便对象周围的阴影效果足够亮。 一种方法是添加一个 feComponentTransfer 过滤器基元,如下所示: <filter id="dropshadow"> <feGaussianBlur in="SourceAlpha" stdDeviation="3"/> <feOffset dx="2" dy="2"/> <feComponentTransfer> <feFuncA type="linear" slope="0.2"/> </feComponentTransfer> <feMerge> <feMergeNode/> <feMergeNode in="SourceGraphic"/> </feMerge> </filter> 可以在这里看到一个实例。 一种方法是简单地使用opacity: 0.5。为此,不要创建将投影与顶部的原始源合并的过滤器,而是为only投影创建一个过滤器,并将其应用到引用源形状的<use>标签。 这种方法还有其他优点。例如,现在您可以仅对阴影应用单独的样式。 #arrow-shadow { opacity:0.5; } g:hover #arrow-shadow { opacity:0.7; } <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-50 -50 200 200" width="400px"> <defs> <filter id="dropshadow" height="130%"> <feGaussianBlur in="SourceAlpha" stdDeviation="3" /> <feOffset dx="2" dy="2" result="offsetblur" /> </filter> </defs> <g fill="#EEE"> <use id="arrow-shadow" xlink:href="#polygon" filter="url(#dropshadow)"></use> <polygon id="polygon" points="58.263,0.056 100,41.85 58.263,83.641 30.662,83.641 62.438,51.866 0,51.866 0,31.611 62.213,31.611 30.605,0 58.263,0.056"/> </g> </svg> 设置 alpha 值的另一种方法是使用 feColorMatrix 过滤器基元。使用它您可以同时设置 alpha 值和阴影的颜色。 下面的滤镜将 alpha 值乘以 0.2,同时将阴影的颜色设置为红色。 <filter id="dropshadow"> <feGaussianBlur in="SourceAlpha" stdDeviation="3"/> <feOffset dx="2" dy="2"/> <feColorMatrix values="0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"/> <feMerge> <feMergeNode/> <feMergeNode in="SourceGraphic"/> </feMerge> </filter> 但是如果您只需要更改 alpha 值,feComponentTransfer 过滤器基元可能是更好的选择。 我的情况是,我将 svg 中的每个路径或项目设置为遮罩过滤器,之后我将设置不透明度路径:0 并使用过渡不透明度:1

回答 4 投票 0

在xml文件的序列化中插入标签

我正在序列化一个 XML 文件,其中包含使用 XML 的特殊粘贴自动创建的类。我做的一切都没有问题,超过3000行(Xml文件超过600行),但是我...

回答 1 投票 0

如何为 XML DSIG DTO 设置 Java 数字签名

我需要通过 REST 发送签名的 XML 消息。 XSD 包含架构 https://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd。我能够成功基因...

回答 1 投票 0

如何修复 XML+Compose 应用程序内动态颜色的奇怪行为?

我用 XML 和 Jetpack Compose 编写了单屏。在主屏幕上,我有两个按钮用于不同的屏幕实现。在 Jetpack Compose 实现中,动态颜色在不同设备上效果很好......

回答 2 投票 0

Swagger XML 示例值不遵守类上的 XML 注释

鉴于这门课: [XmlRoot("MySample", 命名空间 = "http://mynamespace.org")] 公开课样本 { [XmlAttribute(“版本”)] 公共字符串

回答 1 投票 0

有没有办法使用 openpxyl 或查看底层 XML 来查看 Excel 工作簿是否包含形状?

我有数千个 Excel 工作簿,需要创建一个列表,其中包含可能包含文本的形状(即文本框)。我将如何使用 openpyxl 或底层 XML 来生成 ...

回答 1 投票 0

为什么这个模型映射器映射失败?

我正在尝试使用 ModelMapper 将 json pojo 映射到 xml pojo... 在下面的代码中,我期望看到“jsonSource”(源)POJO 的内容传输到 xmlDest POJO(目标)...

回答 1 投票 0

为什么 Freemarker Template 不解析带命名空间的 xml

我之前的问题在这里得到了解答 如何在body函数中分离freemarker中的XML标签 但是我的 xml 带有名称空间,但是当我尝试在模板中添加名称空间时,它无法解析...

回答 1 投票 0

如何为camel核心xml解析器启用AccessExternalSchema

在 https://camel.apache.org/manual/camel-3x-upgrade-guide-3_21.html 中发现,camel-core 禁用了对 xml 解析器的外部架构的访问。 我目前在camel r中遇到这个错误...

回答 1 投票 0

IE11 XSLT 将 <param> 节点转换为自闭合标签

这个问题与此非常相关 输出到 DOM 时,XSLT 将 节点转换为 标签 考虑这段代码: <question vote="0"> <p>这个问题与此非常相关 <a href="https://stackoverflow.com/questions/78266294/xslt-converts-image-node-to-img-tag-when-outputiing-to-dom">XSLT 在输出到 DOM 时将 <image> 节点转换为 <img> 标签</a></p> <p>考虑这段代码:</p> <pre><code>&lt;script type=&#34;application/xml&#34; id=&#34;data&#34;&gt; &lt;xsl:copy-of select=&#34;/*&#34; /&gt; &lt;/script&gt; </code></pre> <p>这会将 XML 文档的内容输出到 html 页面中。 然后,可以很容易地通过 javascript 的 DOMParser() 对象解析 XML 中的数据,从而可以在网页上轻松访问这些数据,而无需使用 XSLT 生成网页。</p> <p>需要在脚本标签之间移动 <xsl:copy-of select"/*" />,以防止 XSLT 转换器将 XML 文件中的节点转换为 HTML 中的标签。</p> <p>这工作得很好,直到我发现节点也发生了同样的情况。简单地说:如果 XML 有节点,输出将被破坏且无法解析,如下所示:</p> <p><a href="https://i.stack.imgur.com/Ns44i.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL05zNDRpLnBuZw==" alt=""/></a></p> <p>如何防止这种行为?如何阻止浏览器引擎使标签成为自关闭标签?</p> <pre><code>new DOMParser().parseFromString() </code></pre> <p>/\ 不适用于自关闭节点。</p> <hr/> <p>好的,这里是重现此内容所需的文件:</p> <p>测试.xslt</p> <pre><code>&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt; &lt;xsl:stylesheet xmlns:xsl=&#34;http://www.w3.org/1999/XSL/Transform&#34; version=&#34;1.0&#34;&gt; &lt;xsl:output method=&#34;html&#34; indent=&#34;no&#34; version=&#34;5.0&#34; /&gt; &lt;xsl:template match=&#34;/&#34;&gt; &lt;xsl:text disable-output-escaping=&#39;yes&#39;&gt;&amp;lt;!DOCTYPE html&gt;&lt;/xsl:text&gt; &lt;xsl:apply-templates select=&#34;root&#34; /&gt; &lt;/xsl:template&gt; &lt;xsl:template match=&#34;root&#34;&gt; &lt;html&gt; &lt;head&gt; &lt;script type=&#39;application/xml&#39;&gt; &lt;xsl:copy-of select=&#34;/*&#34; /&gt; &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div&gt;qwe&lt;/div&gt; &lt;/body&gt; &lt;/html&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p>测试.xml</p> <pre><code>&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt; &lt;?xml-stylesheet type=&#34;text/xsl&#34; href=&#34;test.xslt&#34;?&gt; &lt;root&gt; &lt;object&gt; &lt;text&gt;text&lt;/text&gt; &lt;param name=&#34;name&#34;&gt;&lt;/param&gt; &lt;/object&gt; &lt;/root&gt; </code></pre> <p>在 Internet Explorer 11 兼容模式下使用 Edge 打开 test.xml。 “head”应该包含一个带有扭曲 xml 的脚本。</p> <p><a href="https://i.stack.imgur.com/N6RRV.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL042UlJWLnBuZw==" alt=""/></a></p> <p>在 Windows 10 上,打开 xml 文件后,您可以通过执行“运行 (Win+R)”->“%systemroot%\system32 12\IEChooser.exe”来打开开发人员工具</p> </question> <answer tick="false" vote="0"> <p>至于我的建议,要使用该库进行序列化,其外观如下(在实际使用中,不要通过 HTTP(S) 导入,请使用本地副本 <pre><code>xsl:import</code></pre>):</p> <pre><code>&lt;xsl:stylesheet xmlns:xsl=&#34;http://www.w3.org/1999/XSL/Transform&#34; version=&#34;1.0&#34;&gt; &lt;xsl:import href=&#34;https://lenzconsulting.com/xml-to-string/xml-to-string.xsl&#34;/&gt; &lt;xsl:output method=&#34;html&#34; indent=&#34;no&#34; version=&#34;5.0&#34; doctype-system=&#34;about:legacy-doctype&#34; /&gt; &lt;xsl:template match=&#34;/&#34;&gt; &lt;xsl:apply-templates/&gt; &lt;/xsl:template&gt; &lt;xsl:template match=&#34;root&#34;&gt; &lt;html&gt; &lt;head&gt; &lt;script type=&#39;application/xml&#39;&gt; &lt;xsl:apply-templates select=&#34;.&#34; mode=&#34;xml-to-string&#34;/&gt; &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div&gt;qwe&lt;/div&gt; &lt;/body&gt; &lt;/html&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p>这应该为您提供一个 <pre><code>script</code></pre> 元素,其文本/CDATA 内容具有输入文档的 <pre><code>root</code></pre> 元素的序列化。</p> </answer> </body></html>

回答 0 投票 0

使用带有额外命名空间的 XSLT 有条件地复制 XML 元素?

我有一个以这些行开头的 XML 我有一个以这些行开头的 XML <?xml version="1.0" encoding="utf-8"?> <TRANSFER xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.interlis.ch/INTERLIS2.3" xmlns="http://www.interlis.ch/INTERLIS2.3"> <HEADERSECTION VERSION="2.3" SENDER="ACME"> <MODELS> <MODEL NAME="DSS_2015_LV95" VERSION="13.11.2018" URI="http://www.vsa.ch/models" /> </MODELS> </HEADERSECTION> <DATASECTION> <DSS_2015_LV95.Siedlungsentwaesserung BID="999"> <DSS_2015_LV95.Siedlungsentwaesserung.Abwasserbauwerk_Text_123> <TextPos> <COORD> ..... <DSS_2015_LV95.Siedlungsentwaesserung.Abwasserbauwerk_Text_123> <TextPos> <COORD> ..... <DSS_2015_LV95.Siedlungsentwaesserung.Abwasserbauwerk_Text_456> <Value> <Price> ..... <DSS_2015_LV95.Siedlungsentwaesserung.Abwasserbauwerk_Text_789> <Text> <Cost> ..... 我找到了很多示例(还有一个帮助我使用特殊命名空间的示例..)“复制除 ....123 之外的所有内容”: 制作一个复制所有内容的模板 添加第二个模板,忽略“...123” 但现在我有相反的任务“仅复制...123”,包括。标头并考虑名称空间。上面描述的方式 - “复制除 456 和 789 之外的所有内容” - 不能使用,因为我不知道要忽略什么。 我没有显示我尝试过的代码(基于 xsl:copy ..),因为它是一个令人困惑的垃圾集合,但我搞乱了匹配和选择.. 我希望我的描述是可以理解的 - 对于我的不专业知识感到抱歉,并提前非常感谢。 根据您最新的评论,您可能想要类似的东西 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:il="http://www.interlis.ch/INTERLIS2.3"> <xsl:template match="il:DATASECTION//node()[not(descendant-or-self::il:DSS_2015_LV95.Siedlungsentwaesserung.Abwasserbauwerk_Text_123|ancestor::il:DSS_2015_LV95.Siedlungsentwaesserung.Abwasserbauwerk_Text_123)]"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet> 未指定的是,如果根本没有 DATASECTION,是否要将空 DSS_2015_LV95.Siedlungsentwaesserung.Abwasserbauwerk_Text_123 复制到输出,或者在这种情况下 DATASECTION 元素是否不应出现在输出中。如果没有 DATASECTION 子代或后代,发布的代码将创建一个空的 DSS_2015_LV95.Siedlungsentwaesserung.Abwasserbauwerk_Text_123。

回答 1 投票 0

使用 python 将结构化 xml 转换为表

我有一个自定义 xml 文件,我应该在其中仅获取有关实体及其相应属性的详细信息,并将其转换为表格格式。以下是 xml 文件的示例。 我有一个自定义 xml 文件,我应该在其中仅获取有关实体及其相应属性的详细信息,并将其转换为表格格式。这是 xml 文件的示例。 <ESpace Key="ESpace:y7vmLUGpAMoLhw4MvpnAPg" Name="Onboarding_Core" UserProviderEspace="Users" DefaultThemeNewRuntime="ThemeReference:rQ3WUJw0o0+BC9ZDjXD7uA" DefaultTransition="Fade" UseCookies="Yes" WebScreenRenderingMode="HTML5" ModuleType="CrossDevice"> <Actions> </Actions> <Entities> <Entity Key="Entity:X2oBACCeRUeSQxJFoyn1hA" ExposeReadOnly="Yes" Identifier="Attribute:_EXIewz0o024UgjslFt7_g" Public="Yes" Name="Document"> <Attributes> <Attribute Key="Attribute:_EXIewz0o024UgjslFt7_g" IsMandatory="Yes" Name="Id" DataType="Long Integer" IsAutoNumber="Yes"/> <Attribute Key="Attribute:ypRA49SJBkexc+ICR12zdw" Length="50" Name="Name" DataType="Text"/> <Attribute Key="Attribute:mdWB6OaTkE26BwxQRRfbBg" Name="CreatedOn" DataType="Date Time"/> <Attribute Key="Attribute:W0foZDFa5kme6QySnTNEMA" Name="Binary" DataType="Binary Data"/> </Attributes> </Entity> <Entity Key="Entity:6NuECH7xe06M250tQsPsJA" IsStaticEntity="Yes" IsMultitenant="No" ExposeReadOnly="Yes" Identifier="Attribute:jBExnTjCy0GOtV5fZZG0pw" Public="Yes" Name="DateFormat" Folder="Folder:SErnhCWKOUKpp39VDQVVcg"> <Attributes> <Attribute Key="Attribute:jBExnTjCy0GOtV5fZZG0pw" IsMandatory="Yes" Name="Id" DataType="Integer" IsAutoNumber="Yes" DeleteRule="Ignore"/> <Attribute Key="Attribute:Q0S8yDbafEi+YMF0rXnbvg" IsMandatory="Yes" Length="50" Name="Format" DataType="Text" DeleteRule="Ignore"/> <Attribute Key="Attribute:XUw_zMWoZki2qWuZcYRizw" IsMandatory="Yes" Length="50" Name="Example" DataType="Text" DeleteRule="Ignore"/> <Attribute Key="Attribute:YpcYFT5YNUKxqaYLZOe6qA" IsMandatory="Yes" Name="Order" DataType="Integer" DeleteRule="Ignore"/> <Attribute Key="Attribute:3QRHk0Wl7kuwg4gmzIs8yw" IsMandatory="Yes" Name="IsActive" DataType="Boolean" DeleteRule="Ignore"/> </Attributes> </Entity> 总共有 28 个实体(表),每个实体都有自己的一组属性(列)。我想以表格格式显示所有 28 个实体的每个实体及其相应的属性。 我是Python的初学者。我尝试使用下面的 python 代码来获取第一个实体名称并将其相应的列/属性存储到字典中,但发生的情况是属性的 root.findall 获取 xml 文件中存在的所有属性,而不仅仅是与第一个实体相对应的属性实体。如何分别获取每个实体的属性并将其转换为表格格式?共有28个实体。 table_list=[] Attribute_list=[] for entity_list in root.findall('.//Entity'): entity_dict={} entity_dict['Entity_Name']=entity_list.get('Name') print(entity_dict) for attribute_list in root.findall('.//Attribute'): attribute_dict={} attribute_dict['Attribute_Name']=attribute_list.get('Name') for child_elem_1 in attribute_list: attribute_dict[child_elem_1.tag]=child_elem_1.text Attribute_list.append(attribute_dict) print(Attribute_list) df= pd.DataFrame(Attribute_list) print(df.head(10)) 这是一个如何使用 beautifulsoup 从 XML 片段创建数据框的示例: import pandas as pd from bs4 import BeautifulSoup xml_doc = """\ <ESpace Key="ESpace:y7vmLUGpAMoLhw4MvpnAPg" Name="Onboarding_Core" UserProviderEspace="Users" DefaultThemeNewRuntime="ThemeReference:rQ3WUJw0o0+BC9ZDjXD7uA" DefaultTransition="Fade" UseCookies="Yes" WebScreenRenderingMode="HTML5" ModuleType="CrossDevice"> <Actions> </Actions> <Entities> <Entity Key="Entity:X2oBACCeRUeSQxJFoyn1hA" ExposeReadOnly="Yes" Identifier="Attribute:_EXIewz0o024UgjslFt7_g" Public="Yes" Name="Document"> <Attributes> <Attribute Key="Attribute:_EXIewz0o024UgjslFt7_g" IsMandatory="Yes" Name="Id" DataType="Long Integer" IsAutoNumber="Yes"/> <Attribute Key="Attribute:ypRA49SJBkexc+ICR12zdw" Length="50" Name="Name" DataType="Text"/> <Attribute Key="Attribute:mdWB6OaTkE26BwxQRRfbBg" Name="CreatedOn" DataType="Date Time"/> <Attribute Key="Attribute:W0foZDFa5kme6QySnTNEMA" Name="Binary" DataType="Binary Data"/> </Attributes> </Entity> <Entity Key="Entity:6NuECH7xe06M250tQsPsJA" IsStaticEntity="Yes" IsMultitenant="No" ExposeReadOnly="Yes" Identifier="Attribute:jBExnTjCy0GOtV5fZZG0pw" Public="Yes" Name="DateFormat" Folder="Folder:SErnhCWKOUKpp39VDQVVcg"> <Attributes> <Attribute Key="Attribute:jBExnTjCy0GOtV5fZZG0pw" IsMandatory="Yes" Name="Id" DataType="Integer" IsAutoNumber="Yes" DeleteRule="Ignore"/> <Attribute Key="Attribute:Q0S8yDbafEi+YMF0rXnbvg" IsMandatory="Yes" Length="50" Name="Format" DataType="Text" DeleteRule="Ignore"/> <Attribute Key="Attribute:XUw_zMWoZki2qWuZcYRizw" IsMandatory="Yes" Length="50" Name="Example" DataType="Text" DeleteRule="Ignore"/> <Attribute Key="Attribute:YpcYFT5YNUKxqaYLZOe6qA" IsMandatory="Yes" Name="Order" DataType="Integer" DeleteRule="Ignore"/> <Attribute Key="Attribute:3QRHk0Wl7kuwg4gmzIs8yw" IsMandatory="Yes" Name="IsActive" DataType="Boolean" DeleteRule="Ignore"/> </Attributes> </Entity> </Entities> </ESpace> """ soup = BeautifulSoup(xml_doc, "xml") out = [] for e in soup.select("Entity"): attrs = {} for a in e.select("Attribute"): out.append({"Entity Name": e["Name"], **a.attrs}) df = pd.DataFrame(out) print(df) 打印: Entity Name Key IsMandatory Name DataType IsAutoNumber Length DeleteRule 0 Document Attribute:_EXIewz0o024UgjslFt7_g Yes Id Long Integer Yes NaN NaN 1 Document Attribute:ypRA49SJBkexc+ICR12zdw NaN Name Text NaN 50 NaN 2 Document Attribute:mdWB6OaTkE26BwxQRRfbBg NaN CreatedOn Date Time NaN NaN NaN 3 Document Attribute:W0foZDFa5kme6QySnTNEMA NaN Binary Binary Data NaN NaN NaN 4 DateFormat Attribute:jBExnTjCy0GOtV5fZZG0pw Yes Id Integer Yes NaN Ignore 5 DateFormat Attribute:Q0S8yDbafEi+YMF0rXnbvg Yes Format Text NaN 50 Ignore 6 DateFormat Attribute:XUw_zMWoZki2qWuZcYRizw Yes Example Text NaN 50 Ignore 7 DateFormat Attribute:YpcYFT5YNUKxqaYLZOe6qA Yes Order Integer NaN NaN Ignore 8 DateFormat Attribute:3QRHk0Wl7kuwg4gmzIs8yw Yes IsActive Boolean NaN NaN Ignore

回答 1 投票 0

android studio 中的 xml 预览质量低下

我正在设计布局,但布局处于低质量状态。 我该如何解决?

回答 1 投票 0

在 TCL 上解析 XML?

我正在尝试在TCL中迭代并打印XML,然后将其设为数组。我正在导入 xml、libxml12、dom,然后解析 xml 内容。然后我尝试使用 documentElement 开始迭代,但是它

回答 1 投票 0

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