xml 相关问题

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

不支持(“无法序列化枚举新类型变体`Example::Data`”)

我在尝试使用 Rust 中的 serde 序列化任何嵌套的 Enum-struct/newtype-variant 时收到此“无法序列化 Newtype Variant”错误。单位变体似乎工作正常。 那个...

回答 1 投票 0

Notepad++:当上一行找到第一个字符串时,如何替换下一行中的字符串?

我正在使用 Notepad++ 编辑 XML 文件,并且我正在尝试弄清楚如何对文件中的多个记录进行编辑。问题是,我想从以下行中删除特定字符串

回答 1 投票 0

在 gsoap 中生成 SOAP-ENV:Header 的子元素时出现问题

我想创建这样的东西: 我想创建这样的东西: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml1="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:wsc="http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:chan="http://schemas.microsoft.com/ws/2005/02/duplex" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:pt="http://www.onvif.org/ver10/pacs" xmlns:ns1="http://www.onvif.org/ver20/analytics/humanface" xmlns:ns2="http://www.onvif.org/ver20/analytics/humanbody" xmlns:xmime="http://tempuri.org/xmime.xsd" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wsrfbf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:wsrfr="http://docs.oasis-open.org/wsrf/r-2" xmlns:tac="http://www.onvif.org/ver10/accesscontrol/wsdl" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tev="http://www.onvif.org/ver10/events/wsdl" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:timg="http://www.onvif.org/ver20/imaging/wsdl" xmlns:tmd="http://www.onvif.org/ver10/deviceIO/wsdl" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:trp="http://www.onvif.org/ver10/replay/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:tse="http://www.onvif.org/ver10/search/wsdl"> <SOAP-ENV:Header> <dom0:SubscriptionId wsa5:IsReferenceParameter="true" xmlns:dom0="http://trololo/111/event">1715065920077</dom0:SubscriptionId> <dom1:SubscriptionId wsa5:IsReferenceParameter="true" xmlns:dom0="http://trololo/222/event">1715065920078</dom0:SubscriptionId> <wsa5:MessageID>urn:uuid:654721e3-4c2e-45ec-a1f3-f581309c6428</wsa5:MessageID> <wsa5:To SOAP-ENV:mustUnderstand="true">http://127.0.0.1:8088/mockEventsBinding/1715065920077</wsa5:To> <wsa5:Action SOAP-ENV:mustUnderstand="true">http://docs.oasis-open.org/wsn/bw-2/SubscriptionManager/RenewRequest</wsa5:Action> </SOAP-ENV:Header> <SOAP-ENV:Body> <wsnt:Renew> <wsnt:TerminationTime>PT30S</wsnt:TerminationTime> </wsnt:Renew> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 所以我需要在标头中添加几个子项(dom0:SubscriptionId、dom1:SubscriptionId) gsoap生成了这样一个结构: struct SOAP_CMAC SOAP_ENV__Header { public: /** MustUnderstand */ struct _wsse__Security *wsse__Security; /** XML DOM element node graph */ struct soap_dom_element *__any; /** Optional element 'wsa5:MessageID' of XML schema type 'wsa5:MessageID' */ char *wsa5__MessageID; /** Optional element 'wsa5:RelatesTo' of XML schema type 'wsa5:RelatesTo' */ struct wsa5__RelatesToType *wsa5__RelatesTo; /** Optional element 'wsa5:From' of XML schema type 'wsa5:From' */ struct wsa5__EndpointReferenceType *wsa5__From; /** MustUnderstand */ struct wsa5__EndpointReferenceType *wsa5__ReplyTo; /** MustUnderstand */ struct wsa5__EndpointReferenceType *wsa5__FaultTo; /** MustUnderstand */ char *wsa5__To; /** MustUnderstand */ char *wsa5__Action; /** Optional element 'chan:ChannelInstance' of XML schema type 'chan:ChannelInstanceType' */ struct chan__ChannelInstanceType *chan__ChannelInstance; public: /** Return unique type id SOAP_TYPE_SOAP_ENV__Header */ long soap_type() const { return SOAP_TYPE_SOAP_ENV__Header; } /** Constructor with member initializations */ SOAP_ENV__Header() : wsse__Security(), __any(), wsa5__MessageID(), wsa5__RelatesTo(), wsa5__From(), wsa5__ReplyTo(), wsa5__FaultTo(), wsa5__To(), wsa5__Action(), chan__ChannelInstance() { } /** Friend allocator */ friend SOAP_FMAC1 SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap*, int, const char*, const char*, size_t*); }; 我需要使用 struct soap_dom_element *__any; 添加我的孩子。 然而这是不可能的。我只能添加带有子节点的单个节点,例如: <SOAP-ENV:Header><parent><child1/><child2/></parent></SOAP-ENV:Header> 但无法添加没有父项的子项。 (虽然onvif协议要求) 所以我尝试将 elts 设置为 __any,结果我只序列化了第一个子元素。看起来像 gsoap 错误。 创建结构的方式: auto first = soap_elt_new(m_event_proxy.Get(), nullptr, "test1"); first->next = soap_elt_new(m_event_proxy.Get(), nullptr, "test2"); first->next->next = soap_elt_new(m_event_proxy.Get(), nullptr, "test3"); m_event_proxy.Get()->header->__any = first; 其中 m_event_proxy 是 SoapInitializer<PullPointSubscriptionBindingProxy> ; 好吧,诀窍是像这样创建一个父空节点并设置它的类型: m_parameter = soap_elt_new(m_soap, nullptr, nullptr); m_parameter->type = SOAP_TYPE__XML; 然后我们应该将节点添加为子节点: auto parameter1 = soap_elt_new(m_soap, nullptr, "test1"); soap_add_elt(m_parameter, parameter1); auto parameter2 = soap_elt_new(m_soap, nullptr, "test2"); soap_add_elt(m_parameter, parameter2); 宾果游戏

回答 1 投票 0

XSLT3 将 json 输出设置为不带键的字符串数组

我是xslt新手, 我有一个包含这些元素的 xml 第 1 行 &...

回答 1 投票 0

在 Android 启动屏幕上包含文本

我正在使用此网站上的这种流行方法来制作启动画面: 启动画面的正确方式。 我想显示翻译后的文本“正在加载”到不同的语言。这个问题很早就被问到了...

回答 2 投票 0

将KML导入MySQL

我有这个 KML 文件要插入 MySQL 表中: 我有这个 KML 文件要插入 MySQL 表中: <?xml version="1.0" encoding="utf-8" ?> <kml xmlns="http://www.opengis.net/kml/2.2"> <Document id="root_doc"> <Schema name="secc_cpv_e_20111101_01_r_ine" id="secc_cpv_e_20111101_01_r_ine"> <SimpleField name="Name" type="string"></SimpleField> </Schema> <Folder> <name>secc_cpv_e_20111101_01_r_ine</name> <Placemark> <name>5200101001</name> <Style> <LineStyle> <color>ff0000ff</color> </LineStyle> <PolyStyle> <fill>0</fill> </PolyStyle> </Style> <MultiGeometry> <Polygon> <outerBoundaryIs> <LinearRing> <coordinates>-2.93698273596522,35.2979346176443,0 -2.93697084790041,35.2979326186938,0 -2.93695877204193,35.297933090301,0 -2.93694953435202,35.2979385903615,0 -2.93694137509274,35.2979447898008,0 -2.93692885164904,35.297946595687,0 -2.93691871628878,35.2979409773216,0 -2.93691413103252,35.2979323321398,0 -2.93690399979109,35.2979270789636,0 -2.93689431492369,35.2979220514443,0 -2.93688289797324,35.2979224151838,0 -2.93687516563971,35.2979298005764,0 </coordinates> </LinearRing> </outerBoundaryIs> </Polygon> </MultiGeometry> </Placemark> </Folder> </Document> </kml> 当我启动PHP将KML插入MySQL时,只获取坐标的开头,不捕获所有数据;在坐标字段中记录 NULL: <?php $dom = new DOMDocument(); $dom->loadXML(file_get_contents('demo.kml')); foreach ($dom->getElementsByTagName('Folder') as $warehouse) { $warehouseName = $warehouse->getElementsByTagName('name')[0]->nodeValue; foreach ($warehouse->getElementsByTagName('Placemark') as $placemark) { $polygons = $placemark->getElementsByTagName('Polygon'); if ($polygons->length > 0) { $coordinates = $polygons[0]->getElementsByTagName('coordinates'); if ($coordinates->length > 0) { $zoneName = $placemark->getElementsByTagName('name')[0]->nodeValue; // $zoneDesc = $placemark->getElementsByTagName('description')[0]->nodeValue; $coordinates = explode("\n", $coordinates[0]->nodeValue); $coordinatesMysql = array(); foreach ($coordinates as $coordinate) { $coordinate = trim($coordinate); if (!empty($coordinate)) { list($lon, $lat, $elevation) = explode(",", trim($coordinate)); $coordinatesMysql[] = "$lat $lon"; } } echo 'insert into demozonas (name,polygon) values ' ."('$zoneName',ST_PolygonFromText('Polygon((" .implode(', ', $coordinatesMysql) ."))'));\n"; } } } } ?> 插入命令的结果是: insert into demozonas (name,polygon) values ('5200101001',ST_PolygonFromText('Polygon((35.2979346176443 -2.93698273596522))'));` 我尝试了另一个 KML 示例并有效,但我看不到我的 KML 文件中的错误在哪里,有人可以帮助我吗? 坐标值似乎是用空格而不是换行符分隔的。 Xpath可以简化代码,并且可以标准化坐标值。 $document = new DOMDocument(); $document->loadXML(getKMLString()); $xpath = new DOMXpath($document); // register prefix for namespace $xpath->registerNamespace('kml', 'http://www.opengis.net/kml/2.2'); $records = []; // iterate placemarks with polygon descendants foreach ($xpath->evaluate('//kml:Folder/kml:Placemark[count(.//kml:Polygon) > 0]') as $placemark) { // fetch the first polygon inside $placemark foreach ($xpath->evaluate('(//kml:Polygon)[1]', $placemark) as $polygon) { // fetch coordinates as string with all whitespaces normalized to single space characters $coordinates = parseCoordinates($xpath->evaluate('normalize-space(.//kml:coordinates)', $polygon)); $records[] = [ // fetch $placemakr name as string 'name' => trim($xpath->evaluate('string(kml:name)', $placemark)), // compile $coordinates array to Polygon((...)) 'polygon' => coordinatesToPolygon($coordinates), 'coordinates' => $coordinates, ]; } } var_dump($records); // parse coordinates into a nested array function parseCoordinates(string $coordinates) { return array_map( function($coordinate) { [$latitude, $longitude] = explode(',', $coordinate); return [$latitude, $longitude]; }, explode(' ', $coordinates) ); } function coordinatesToPolygon(array $coordinates) { return 'Polygon(('.implode( ', ', array_map(fn ($coordinate) => implode(' ', $coordinate), $coordinates) ).'))'; } function getKMLString() { return <<<'XML' <?xml version="1.0" encoding="utf-8" ?> <kml xmlns="http://www.opengis.net/kml/2.2"> <Document id="root_doc"> <Schema name="secc_cpv_e_20111101_01_r_ine" id="secc_cpv_e_20111101_01_r_ine"> <SimpleField name="Name" type="string"></SimpleField> </Schema> <Folder> <name>secc_cpv_e_20111101_01_r_ine</name> <Placemark> <name>5200101001</name> <Style> <LineStyle> <color>ff0000ff</color> </LineStyle> <PolyStyle> <fill>0</fill> </PolyStyle> </Style> <MultiGeometry> <Polygon> <outerBoundaryIs> <LinearRing> <coordinates>-2.93698273596522,35.2979346176443,0 -2.93697084790041,35.2979326186938,0 -2.93695877204193,35.297933090301,0 -2.93694953435202,35.2979385903615,0 -2.93694137509274,35.2979447898008,0 -2.93692885164904,35.297946595687,0 -2.93691871628878,35.2979409773216,0 -2.93691413103252,35.2979323321398,0 -2.93690399979109,35.2979270789636,0 -2.93689431492369,35.2979220514443,0 -2.93688289797324,35.2979224151838,0 -2.93687516563971,35.2979298005764,0 </coordinates> </LinearRing> </outerBoundaryIs> </Polygon> </MultiGeometry> </Placemark> </Folder> </Document> </kml> XML; } 输出: array(1) { [0]=> array(3) { ["name"]=> string(10) "5200101001" ["polygon"]=> string(439) "Polygon((-2.93698273596522 35.2979346176443, -2.93697084790041 35.2979326186938, -2.93695877204193 35.297933090301, -2.93694953435202 35.2979385903615, -2.93694137509274 35.2979447898008, -2.93692885164904 35.297946595687, -2.93691871628878 35.2979409773216, -2.93691413103252 35.2979323321398, -2.93690399979109 35.2979270789636, -2.93689431492369 35.2979220514443, -2.93688289797324 35.2979224151838, -2.93687516563971 35.2979298005764))" ["coordinates"]=> array(12) { [0]=> array(2) { [0]=> string(17) "-2.93698273596522" [1]=> string(16) "35.2979346176443" } [1]=> array(2) { [0]=> string(17) "-2.93697084790041" [1]=> string(16) "35.2979326186938" } [2]=> array(2) { [0]=> string(17) "-2.93695877204193" [1]=> string(15) "35.297933090301" } [3]=> array(2) { [0]=> string(17) "-2.93694953435202" [1]=> string(16) "35.2979385903615" } [4]=> array(2) { [0]=> string(17) "-2.93694137509274" [1]=> string(16) "35.2979447898008" } [5]=> array(2) { [0]=> string(17) "-2.93692885164904" [1]=> string(15) "35.297946595687" } [6]=> array(2) { [0]=> string(17) "-2.93691871628878" [1]=> string(16) "35.2979409773216" } [7]=> array(2) { [0]=> string(17) "-2.93691413103252" [1]=> string(16) "35.2979323321398" } [8]=> array(2) { [0]=> string(17) "-2.93690399979109" [1]=> string(16) "35.2979270789636" } [9]=> array(2) { [0]=> string(17) "-2.93689431492369" [1]=> string(16) "35.2979220514443" } [10]=> array(2) { [0]=> string(17) "-2.93688289797324" [1]=> string(16) "35.2979224151838" } [11]=> array(2) { [0]=> string(17) "-2.93687516563971" [1]=> string(16) "35.2979298005764" } } } }

回答 1 投票 0

如何对具有两个不同字典 xml 路径的 XML 文件进行 XSL 转换并将其转换为一个词典

XML 文件,其中包含两个字典的路径和徽标的路径。该词典包含 10 个单词,每个单词一个英语单词,一个瑞典语单词。 XML 文件,其中包含两个词典的路径和徽标的路径。这些词典包含 10 个单词,每个英语单词和一个瑞典语单词。 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="lexikon.xsl"?> <lexicon> <wordlist1>xml_english.xml</wordlist1> <wordlist2>xml_swedish.xml</wordlist2> <editor>Simon Bale</editor> <logo>logo.svg</logo> </lexicon> XML 英语词典 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="xml_style.css"?> <wordlist> <language>English</language> <author>David Cahill</author> <words> <word>night</word> <word>day</word> <word>water</word> <word>car</word> <word>sun</word> <word>sky</word> <word>city</word> <word>house</word> <word>cat</word> <word>rain</word> </words> </wordlist> XSL 文件 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict" > <xsl:output method="xml" indent="yes" encoding="iso-8859-1" /> <xsl:template match="/"> <html> <head> <title>Lexicon</title> <link rel="stylesheet" type="text/css" href="xhtml_style.css"/> </head> <body> <image src="logo.svg" alt="Logo"/> <h1><xsl:value-of select="/wordlist/language"/> </h1> <h2><xsl:value-of select="/wordlist/author"/> </h2> <ul> <!--en lista--> <xsl:for-each select="/wordlist/words/word"> <li> <xsl:value-of select="."/> </li> </xsl:for-each> </ul> </body> </html> </xsl:template> </xsl:stylesheet> 我想将包含徽标和字典路径的 XML 文件转换为词典。但我陷入困境,不确定我做得是否正确。 <!-- transform.xsl --> <!-- Define variables to hold the documents --> <xsl:variable name="doc1" select="document('xml_english.xml')"/> <xsl:variable name="doc2" select="document('xml_swedish.xml')"/> <!-- Main template to process the merged documents --> <xsl:template match="/"> <output> <!-- Process content from doc1 --> <xsl:apply-templates select="$doc1/root/*"/> <!-- Process content from doc2 --> <xsl:apply-templates select="$doc2/root/*"/> </output> </xsl:template> <!-- Template to process nodes from doc1 --> <xsl:template match="data"> <!-- Customize processing as needed --> <processedData1> <xsl:value-of select="."/> </processedData1> </xsl:template> <!-- Template to process nodes from doc2 --> <xsl:template match="data"> <!-- Customize processing as needed --> <processedData2> <xsl:value-of select="."/> </processedData2> </xsl:template>

回答 1 投票 0

WCF 对于一个非常简单的应用程序返回 400 错误

我创建了一个非常简单的 WCF 应用程序,除了返回您输入的输入值之外什么也不做。 当在本地 IIS 中托管此应用程序时,我得到了响应,没有任何问题。 然而,当

回答 1 投票 0

使用 Jackson 反序列化 XML 列表时出现 MismatchedInputException

我在反序列化某些包含对象列表的 XMl 时遇到问题。 为了重现它,我首先将给定对象序列化为 XML,然后尝试反序列化结果,但失败了。 这是我的样本...

回答 1 投票 0

从 tibble 中取消嵌套同名列表:数据被删除

我在使用unnest_wider(来自tidyr)时遇到了麻烦。 我有一个嵌套的 XML 文档,我正在尝试将其转换为数据框/tibble。我遵循此处介绍的工作流程,该工作流程建议您...

回答 1 投票 0

windowBackground 上的对话框自定义状态?

是否可以让我的 android:windowBackground 可绘制对象接收我添加的自定义属性? 对于背景,我有自定义视图,我可以覆盖 onCreateDrawableState。对于对话框来说,那是...

回答 1 投票 0

ODOO 在现场使用隐形属性 |条件:如果数字是0.0

在 Odoo 中,当您有 xpath 时,您可以在满足条件时将“attrs”添加到不可见的字段中。这很好用。 我有一个字段“折扣”,我只想在发票/报价报告上显示该字段...

回答 2 投票 0

odoo.tools.convert.重启odoo-bin时出现ParseError

我正在这里学习开发者教程。 我已将两个操作按钮添加到树视图中。 一切工作正常,直到我将按钮标签添加到 XML 视图后重新启动服务器。我...

回答 2 投票 0

如何在 SELECT ... FOR XML 中创建连接记录作为嵌入式 XML 元素?

从 SQL select 生成 XML 文档 (IDOC) 时我遇到了困难。 XML 应如下所示: ....一些主要元素... ...第一个...

回答 1 投票 0

出现错误:android.widget.LinearLayout 无法转换为 android.widget.TextView

错误: 无法启动活动 ComponentInfo{com.example.app/com.example.app.MainPermission}:java.lang.ClassCastException:android.widget.LinearLayout 无法转换为 android.widget.TextView 我

回答 1 投票 0

使用 Python xmptools 从 PDF 文件中检索 XMP 元数据

我想使用Python来检索PDF文件中存储的元数据。我正在尝试使用 Python xmptools,但发现无法提取所有元数据。例如,本文有 PDF 版本

回答 1 投票 0

如何从 Javascript 检索 xml 数据[重复]

可能的重复: 如何使用 Javascript 从 XML 文档中提取值 我的 demo.xml 文件包含以下数据: 可能重复: 如何使用 Javascript 从 XML 文档中提取值 我的 demo.xml 文件包含以下数据: <?xml version="1.0"?> <user> <details> <name>abc</name> <class>xyz</class> <city>pqr</city> </details> <info> <id>123</id> <code>456</code> </info> </user> 我想使用 Javascript 将文件 demo.xml 中的所有这些数据提取到我的代码中。我怎样才能得到这个?有什么解决办法吗?谢谢.... 这是一个可以为您指明正确方向的示例: var request = new XMLHttpRequest(); request.open("GET", "/path/demo.xml", true); request.send(); var xml = request.responseXML; var users = xml.getElementsByTagName("user"); for(var i = 0; i < users.length; i++) { var user = users[i]; var names = user.getElementsByTagName("name"); for(var j = 0; j < names.length; j++) { alert(names[j].childNodes[0].nodeValue); } }

回答 1 投票 0


有人看到这个吗?你能帮我吗?错误:- android.widget.LinearLayout 无法转换为 android.widget.TextView -

XML设计代码: 无法启动 Activity ComponentInfo{com.example.app/com.example.app.MainPermission}:java.lang.ClassCastException:android.widget.LinearLayout 无法转换为 android.widget。

回答 1 投票 0

如何在 Odoo 16 中向发票门户视图添加按钮

我一直在尝试添加一个按钮来向 Odoo 中发票的门户视图添加签名,我怀疑问题出在我正在使用的外部 ID 上(或者可能是版权问题?),但我已经尝试过

回答 2 投票 0

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