xml 相关问题

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

使用 SimpleXmlConverterFactory 解析自关闭标签

我正在使用 SimpleXmlConverterFactory 来解析 XML 我正在使用 SimpleXmlConverterFactory 来解析 XML <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE tv SYSTEM "xmltv.dtd"> <tv date="2024-03-20" source-info-name="Radio Times" generator-info-name="XMLTV" > <channel id="2003"> <display-name lang="en">Hockey</display-name> </channel> <programme start="2024-03-19T07:00:00.000+0000" stop="2024-03-19T08:00:00.000+0000" channel="2003" > <title lang="en">Game</title> <icon src="https://images.pexels.com/photos/326055/pexels-photo-326055.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2" width="1920" height="1080" /> </programme> </tv> 这些是模型类 @Root(name = "tv")@Keep public class Tms implements Serializable { @Element(required = false) private Channel channel; @ElementList(name = "programme", entry = "programme", inline = true, required = false) private List<Program> programs; } 程序模型 public class Program implements Serializable , Comparable<Program> { @Element(required = false) private Title title; @Element(name = "icon", required = false) private Icon icon; } 图标模型 data class Icon( @field:Attribute(name = "src", required = false) var src: String? = null, @field:Attribute(name = "width", required = false) var width: String? = null, @field:Attribute(name = "height", required = false) var height: String? = null ) 配对给我以下错误 Caused by: org.simpleframework.xml.core.PersistenceException: Element 'icon' is already used with @org.simpleframework.xml.Element(data=false, name=icon, required=false, type=void) on field 'icon' private com.epg.Icon com.epg.Program 您的错误消息表明使用简单 XML 错误在 XML 文档中映射图标元素存在问题,具体指出图标元素在模型类中使用 @Element 注释进行了多次映射。 要解决问题,您需要检查“图标”元素是否在模型类中正确映射,并且未映射多次。 您的 xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE tv SYSTEM "xmltv.dtd"> <tv date="2024-03-20" source-info-name="Radio Times" generator-info-name="XMLTV" > <channel id="2003"> <display-name lang="en">Hockey</display-name> </channel> <programme start="2024-03-19T07:00:00.000+0000" stop="2024-03-19T08:00:00.000+0000" channel="2003" > <title lang="en">Game</title> <icon src="https://images.pexels.com/photos/326055/pexels-photo-326055.jpeg?auto=compress&amp;cs=tinysrgb&amp;w=1260&amp;h=750&amp;dpr=2" width="1920" height="1080" </icon> </programme> </tv> 节目课 import org.simpleframework.xml.Element; public class Programme { @Element(name = "title") private String title; @Element(name = "icon") private Icon icon; // Constructor, getters and setters... } 图标模型类 import org.simpleframework.xml.Attribute; public class Icon { @Attribute(name = "src") private String src; @Attribute(name = "width") private int width; @Attribute(name = "height") private int height; // Constructor public Icon(@Attribute(name = "src") String src, @Attribute(name = "width") int width, @Attribute(name = "height") int height) { this.src = src; this.width = width; this.height = height; } // Getters and setters... } 根据 michael-kay 建议,XML 格式也已修改。 XML 语法要求与字符“&”转义为 &amp;,以保证正确解析。您应该在 XML 文档中的任何属性值或文本内容中使用 &amp; 代替 & 字符。您可以确保 XML 文档格式良好,以便 XML 解析器可以通过正确转义 & 字符来成功解释它。

回答 1 投票 0

如果嵌套数组只有一个值,则不会从 ADF 中的 XML 文件插入数据

我有一个任务,要将多个 XML 文件插入到表中。 我已成功在 ADF 中设置了一条运行良好的管道。但现在我发现有几个文件没有插入......

回答 1 投票 0

为什么我的Android自定义KeyboardView在设置新键盘后会溢出?

我正在开发Android键盘。现在我想将键盘从字母更改为符号,然后用户按“123”按钮。 我的问题是,调用后键盘溢出

回答 1 投票 0

从 xml 生成 spacy 的 TRAIN_DATA

我有xml数据,如下所示: 斯图加特 我有 xml 数据,如下所示: <item n="main"><anchor type="b" ana="regO.lemID_12" xml:id="TidB13" />Stuttgart<anchor type="e" ana="reg0.lemID_12" xml:id="TidE13" /> d. 20. Sept [19]97<lb/>Lieber Herr Schmidt!<lb/>Ich bin sehr glücklich über die Aufnahme <anchor type="b" ana="regW.lemID_17" xml:id="TidB22" />meines <anchor type="b" ana="regP.lemID_4" xml:id="TidB4" />Shakespeare<anchor type="e" ana="regP.lemID_4" xml:id="TidE4" /><anchor type="e" ana="regW.lemID_17" xml:id="TidE22" /> bei euch, vielen Dank.</item> 我想使用这样的文本作为spacy中的训练数据,因此我需要它以spacy requieres的形式: doc = nlp("Laura flew to Silicon Valley.") gold_dict = {"entities": [(0, 5, "PERSON"), (14, 28, "LOC")]} example = Example.from_dict(doc, gold_dict) 尤其是偏移量的创建,即实体何时开始和何时结束,我仍然无法正确理解。有没有特别合适的程序? 提前非常感谢您 我尝试用元素Tree来做到这一点,但是开始和结束位置的创建总是错误的。我也尝试用木瓜来做这件事,描述如下这里。但总是找不到“伊藤” 要 grep 文本,您需要元素 .tail: import xml.etree.ElementTree as ET xml_str =""" <item n="main"><anchor type="b" ana="regO.lemID_12" xml:id="TidB13" />Stuttgart<anchor type="e" ana="reg0.lemID_12" xml:id="TidE13" /> d. 20. Sept [19]97<lb/>Lieber Herr Schmidt!<lb/>Ich bin sehr glücklich über die Aufnahme <anchor type="b" ana="regW.lemID_17" xml:id="TidB22" />meines <anchor type="b" ana="regP.lemID_4" xml:id="TidB4" />Shakespeare<anchor type="e" ana="regP.lemID_4" xml:id="TidE4" /><anchor type="e" ana="regW.lemID_17" xml:id="TidE22" /> bei euch, vielen Dank.</item> """ root = ET.fromstring(xml_str) text = [] for elem in root.iter(): if elem.tail is not None: # with linebreak \n text.append(elem.tail+'\n') t = ''.join(text) print(t) print(repr(t)) 输出: Stuttgart d. 20. Sept [19]97 Lieber Herr Schmidt! Ich bin sehr glücklich über die Aufnahme meines Shakespeare bei euch, vielen Dank. 'Stuttgart\n d. 20. Sept [19]97\nLieber Herr Schmidt!\nIch bin sehr glücklich über die Aufnahme \nmeines \nShakespeare\n bei euch, vielen Dank.\n'

回答 1 投票 0

Visual basic 如何用代码打开 xml 文件

当我运行此代码时,将一些项目放入 lstF25 并按退出,我没有收到错误或任何其他信息,但没有打开 xml 文件,有人可以帮忙吗 我还没有完成 xml 的其他部分,因为我需要...

回答 1 投票 0

创建 DOM XML - 尝试解决“nbsp”实体问题

我正在尝试创建 XML 记录。我是这样开始的: $doc = new DomDocument('1.0', 'UTF-8'); 现在我应该添加这一行: 我正在尝试创建 XML 记录。我从这个开始: $doc = new DomDocument('1.0', 'UTF-8'); 现在我应该添加这一行: <!DOCTYPE page SYSTEM "http://gv.ca/dtd/character-entities.dtd"> 我该怎么做? 假设是PHP,您可以考虑使用DOMImplementation::createDocumentType和DOMImplementation::createDocument。请参阅此处 也许有人会发现这很有用,当你有$dom = new DOMDocument()时,尝试两个版本: $dom->saveHtml(); // try this $dom->saveHtml($dom); // or this 因为有时它们实际上确实返回不同的值,特别是当它涉及实体时。

回答 2 投票 0

Python 抱怨 xpath 表达式无效

运行脚本时,我的 Xpath 定义出现以下错误。 selenium.common.exceptions.InvalidSelectorException:消息:给定的 xpath 表达式 ..... 无效:SyntaxEr...

回答 1 投票 0

访问 APPDATA 目录中子文件夹中的文件

我正在尝试打开位于 APPDATA 目录子文件夹中的 XML 文件。显然,文件夹会根据登录的用户而变化: 如果指定用户名我没有问题,...

回答 1 投票 0

使用 VBA 将属性放入 XML 文件中

如何将下面的属性放在我的 vba 代码中的节点envideclaracaoautodesembaraco 中。我希望我的 .xml 文件生成与下面的示例相同的属性。 <

回答 1 投票 0

如何使用 PowerShell 解析嵌套 XML

我将使用 PowerShell 解析嵌套的 xml 文件。有没有办法一一遍历它的子节点及其子节点的节点? 例如: 我将使用 PowerShell 解析嵌套的 xml 文件。有没有办法一一遍历它的子节点及其子节点的节点? 例如: <?xml version="1.0"?> <root xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <Node1 name="A"/> <Node2 name="B"/> <Node3> <Element1 id="1" type="Element"> <State value = "live" /State> <Child1 name="dogName"> <SubChild1 id="11111"> </SubChild1> </Child1> <Child2> <SubChild2 name="color" value="red" /> <SubChild2 name="skin" value="none" /> <SubChild2 name="other" value="lost" /> </Child2> <Child3> <SubChild3>FlagMark=GO</SubChild3> <SubChild3>Dog</SubChild3> </Child3> </Element1> <Element2 id="2" type="Element"> <State value = "live"> <Child1 name="catName"> <SubChild1 id="22222"> </SubChild1> </Child1> <Child2> <SubChild2 name="color" value="brown" /> <SubChild2 name="skin" value="thick" /> <SubChild2 name="other" value="unknown" /> </Child2> <Child3> <SubChild3>FlagMark=Run</SubChild3> <SubChild3>Cat</SubChild3> </Child3> </Element2> <Element3> ... </Element3> </Node3> </root> 如何通过名称和值获取每个子节点?如何一一获取子节点并打印? 以下是如何在 PowerShell 中解析 XML;一个特殊的技巧是使用 [xml] 类型加速器 创建一个变量来保存 XML 字符串: # Declare our XML string $xmlContent = @" <?xml version="1.0"?> <root xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <Node1 name="A"/> <Node2 name="B"/> <Node3> <Element1 id="1" type="Element"> <State value = "live"/> <Child1 name="dogName"> <SubChild1 id="11111"/> </Child1> <Child2> <SubChild2 name="color" value="red"/> <SubChild2 name="skin" value="none"/> <SubChild2 name="other" value="lost"/> </Child2> <Child3> <SubChild3>FlagMark=GO</SubChild3> <SubChild3>Dog</SubChild3> </Child3> </Element1> <!-- ...snip... --> </Node3> </root> "@ 使用 [xml] 类型加速器将字符串解析为 XML: # Convert the string to XML with the [xml] type accelerator $xml = [xml]$xmlContent 使用 .selectNodes 获得一个孩子,例如孩子2: # Get all Child2 nodes $child2Nodes = $xml.SelectNodes("//Child2") 迭代每个 <Child2> 节点及其每个 <SubChild> 节点 # Get a child foreach ($child2 in $child2Nodes) { # Iterate over each subchild foreach ($subChild2 in $child2.ChildNodes) { # Print their names and values Write-Host "SubChild2 Name: $($subChild2.getAttribute('name')), Value: $($subChild2.getAttribute('value'))" } } 然后可以用同样的思路来枚举Child3: # Get all Child3 nodes $child3Nodes = $xml.SelectNodes("//Child3") foreach ($child3 in $child3Nodes) { # Iterate over each child of Child3 and print foreach ($subChild3 in $child3.ChildNodes) { # Print SubChild3 content Write-Host "SubChild3 Content: $($subChild3.'#text')" } }

回答 1 投票 0

使用 lxml 解析 DTD 时出错

我正在尝试编写一个验证脚本,用于根据 NITF DTD 验证 XML,http://www.iptc.org/std/NITF/3.4/specification/dtd/nitf-3-4.dtd。基于这篇文章,我想出了以下内容

回答 2 投票 0

在 Mobile、Android Studio 中单击 otp 输入时,输入键盘未显示

//这是 xml 代码,我认为问题出在 mukeshsolanki 上 //Here is the xml code and i think so problem is with mukeshsolanki <com.mukeshsolanki.android.otpview.OtpView android:id="@+id/otp_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:inputType="text" android:itemBackground="@android:color/darker_gray" app:OtpItemCount="6" app:OtpLineColor="@android:color/holo_green_dark" app:OtpViewType="line" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView4" /> 即使我在这里给出了 inputType='text' 或数字,当我单击 otp 输入部分时,键盘也没有显示。 请将此行添加到您的 theme.xml 中 <item name="otpViewStyle">@style/OtpWidget.OtpView </item> 然后,在 XML 中添加样式属性 style="@style/otpViewStyle"

回答 1 投票 0

使用 jquery/javascript 将 XML 转换为 HTML

我有一些 XML,我需要在 div 中将其显示为文本。 我们可以将此 XML 转换为如下格式吗? 您之前投资过吗 N...

回答 1 投票 0

XSLTForms / XForms - 实例数据中的命名空间?

我在这里做错了什么 - 我的 XForms 数据源是 SPARQL 结果 - 我可以使用以下 XPATH 获取它: 我在这里做错了什么 - 我的 XForms 数据源是 SPARQL 结果 - 我可以使用以下 XPATH 来获取它: <bind id="bnd_results" nodeset="instance('sparql')/*/*/*"/> 但如果不使用“*”通配符,我似乎无法让它工作。 它似乎与实例数据的命名空间有关。 <?php header('Content-Type: text/xml; charset=utf-8'); if (isset($_GET['debug'])) { $debug="yes"; } else { $debug="no"; } ?> <?xml-stylesheet href="xsltforms/xsltforms.xsl" type="text/xsl"?> <?xsltforms-options debug="<?=$debug?>"?> <?php $sparqlep="https://dbpedia.org/sparql?query="; $sparql=<<<SPARQL SELECT DISTINCT(?linkedPerson) WHERE { ?s rdfs:label 'World Wide Web Consortium'@en; foaf:isPrimaryTopicOf ?wikipage. ?linkedPerson rdf:type dbo:Person, foaf:Person; foaf:isPrimaryTopicOf ?linkedwikipage. { ?s ^dbo:wikiPageWikiLink ?linkedPerson.} UNION { ?s dbo:wikiPageWikiLink ?linkedPerson. }} LIMIT 100 SPARQL; $url=$sparqlep . rawurlencode($sparql); ?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:sparql="http://www.w3.org/2005/sparql-results#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/sw/DataAccess/rf1/result2.xsd"> <head> <model xmlns="http://www.w3.org/2002/xforms"> <instance id="sparql" src="<?=$url?>"/> <instance id="default"> <data xmlns=""> <selected/> </data> </instance> <bind id="bnd_results" nodeset="instance('sparql')/*/*/*"/> <bind id="bnd_sel" nodeset="instance('default')/selected"/> </model> </head> <body> <details> <summary>SPARQL query</summary> <code> <?=$sparql?> </code> </details> <group xmlns="http://www.w3.org/2002/xforms"> <label>Selected:</label> <output bind="bnd_sel"/> <select1 appearance="full" bind="bnd_sel"> <itemset bind="bnd_results"> <label ref="."/> <value ref="."/> </itemset> </select1> </group> </body> </html> 即使它是 XPath 1.0 的扩展,XSLTForms 也允许使用“*”指定任何前缀,例如“*:myelement”。 还可以在表单中声明前缀,以便可以在 XPath 表达式中使用它。 以下更改有效(缺少 xpath 中的初始“/sparql” - 并仅从“结果”开始) <bind id="bnd_results" nodeset="instance('sparql')/sparql:results/sparql:result/sparql:binding[@name='linkedPerson']"/> 这是一个工作示例 - 也从中删除了 PHP - 现在只是静态 XHTM + XLSTForms: <?xml-stylesheet href="xsltforms/xsltforms.xsl" type="text/xsl"?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:sparql="http://www.w3.org/2005/sparql-results#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/sw/DataAccess/rf1/result2.xsd"> <head> <xf:model> <xf:instance id="sparql"> <data xmlns=""> <query>prefix dbo: &lt;http://dbpedia.org/ontology/> prefix foaf: &lt;http://xmlns.com/foaf/0.1/> prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?linkedPerson WHERE { ?s rdfs:label 'World Wide Web Consortium'@en; foaf:isPrimaryTopicOf ?wikipage. ?linkedPerson a dbo:Person; foaf:isPrimaryTopicOf ?linkedwikipage. { ?s ^dbo:wikiPageWikiLink ?linkedPerson.} UNION { ?s dbo:wikiPageWikiLink ?linkedPerson. } } LIMIT 100 </query> </data> </xf:instance> <xf:instance id="results"> <sparql:results/> </xf:instance> <xf:instance id="default"> <data xmlns=""> <selected/> </data> </xf:instance> <xf:bind id="bnd_results" nodeset="instance('results')/sparql:results/sparql:result/sparql:binding[@name='linkedPerson']"/> <xf:bind id="bnd_sel" nodeset="instance('default')/selected"/> <xf:submission id="run_sparql" method="get" resource="https://dbpedia.org/sparql" ref="instance('sparql')" replace="instance" instance="results"> <xf:header combine="replace"> <xf:name>Accept</xf:name> <xf:value>application/sparql-results+xml, charset UTF-8</xf:value> </xf:header> </xf:submission> </xf:model> </head> <body> <xf:textarea ref="instance('sparql')/query" cols="80" rows="10" spellcheck="false"> <xf:label>SPARQL</xf:label> </xf:textarea> <xf:trigger> <xf:label>Submit</xf:label> <xf:action ev:event="DOMActivate"> <xf:send submission="run_sparql"/> </xf:action> </xf:trigger> <group xmlns="http://www.w3.org/2002/xforms"> <label>Selected:</label> <output bind="bnd_sel"/> <select1 appearance="full" bind="bnd_sel"> <itemset bind="bnd_results"> <label ref="."/> <value ref="."/> </itemset> </select1> </group> </body> </html>

回答 2 投票 0

如何返回 XML 节点的完整层次结构?

给出以下 XML 片段: 正确 <

回答 1 投票 0

如何使用saxonjs和nodejs获取xml文件中的变量

我有一个xml文件: 描述 我有一个 xml 文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE agent SYSTEM "http://www.someUrl.com"> <myData> <service> <description>Description</description> </service> <courier> <listener port="55556" /> <mainService name="Some Name" port="55555" /> </courier> </myData> 我想使用nodejs获取监听器端口变量的值。 根据 SaxonJs 的文档 SaxonJS.XPath.evaluate 是我需要的方法。它需要一个查询和一个文档节点对象。当我将 xml 文件转换为 dom 对象时,我收到错误消息:“Uncaught TypeError TypeError:无法读取未定义的属性(读取“长度”)” const saxonJs = require('saxon-js'); const fs = require('node:fs'); const jsdom = require("jsdom"); var xmlFile = fs.readFileSync(xmlFilePath, 'utf8'); var doc = new jsdom.JSDOM(xml); var xpathQuery = '//listener/@port'; var result = saxonJs.XPath.evaluate(xpathQuery, doc); 您是否特别需要使用XPath?由于您有 JSDOM,我只需使用 CSS 选择器进行查询: import {JSDOM} from "jsdom"; // ^24.0.0 const xml = `<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE agent SYSTEM "http://www.someUrl.com"> <myData> <service> <description>Description</description> </service> <courier> <listener port="55556" /> <mainService name="Some Name" port="55555" /> </courier> </myData>`; const dom = new JSDOM(xml, {contentType: "application/xml"}); const {document} = dom.window; const port = document.querySelector("listener").getAttribute("port"); console.log(port); // => 55556 如果您确实想使用 XPath,可以在 JSDOM 中执行(请注意 [@port] 更改为按 listener 元素上的属性进行选择): const port = document .evaluate( "//listener[@port]", document, null, 9, // FIRST_ORDERED_NODE_TYPE ) .singleNodeValue .getAttribute("port"); 或直接选择属性字符串值: const port = document .evaluate( "//listener/@port", document, null, 2, // STRING_TYPE ) .stringValue; 在撰写本文时,JSDOM 每周下载量为 22,000,000 次,而 saxon-js 为 20,000 次。如果可能的话,我会避免对 saxon-js 的依赖。

回答 1 投票 0

将 XML 文件导入数据库,但转义一些 XML 标签

我能够使用以下查询成功将 XML 文件导入到数据库中的表中: 加载XML INFILE“myFileName.xml” 进入表 t_orig2 由“”标识的行; ...

回答 2 投票 0

Oracle:具有多个与表同名的节点的 XML

我有一个XML文件存储在一个结构相当奇怪的表中:它可以不包含某个节点,可以包含它一次,也可以包含它多次。在下面的示例中,n...

回答 1 投票 0

获取多级第一个子XML元素

我想要获取 XML 文档的第一个子级(不知道节点的确切名称),多层深度。 我正在将一些代码从 JS 移植到 Python。这是 JS 代码: 让文档 = XmlSer...

回答 1 投票 0

在Python中提取gz文件中的gz文件

我有一个 .gz 文件,该文件本身有多个 .gz 文件,其中包含我希望以 XML 格式提取的数据。因此,在某种“路线视图”中,它看起来像这样: maingz文件/

回答 1 投票 0

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