xml 相关问题

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

如何获取 Oxygen 中特定属性的现有值列表

我有一个很大的 xml 文件,其中有许多具有关键属性的标签。这是历史文本,因此存在拼写变化,我需要对键进行标准化。 我可以看到所有现有的属性

回答 1 投票 0

结束斜杠之前有空格?

我经常在 XML 和 HTML 标记中看到结束斜杠之前有一个空格。 XHTML 换行符可能是典型的示例: 代替: 空间看起来超级大...

回答 8 投票 0

XSLT 基于多个元素/值删除重复节点

我有以下输入 XML 片段 ABC XYZ LOC_1 ...

回答 1 投票 0

如何用Python写入xml文件根值

我有一个脚本,我想用它来创建写入文件以更新设备上的序列号。 它执行文件夹/文件路径检查 -> 复制 Read.xml 并创建 Write.xml(复制) -> Obta...

回答 1 投票 0

为什么 XmlWriter 并不总是按照 XmlWriterSettings 中指定的方式格式化 XML?

背景 我收到很多不包含换行符的 xml 文件,为了快速格式化它们,我使用下面的函数。 设想 当我第一次在不包含换行符的文件上运行该工具时,...

回答 1 投票 0

使用 LINQ 对 XML 数据进行 AND 条件

我的 XML 数据如下所示(简化) 01 约翰 我的 XML 数据看起来像这样(简化) <customer> <id>01</id> <name>John</name> <discount id='plumb' /> <discount id='lumber' /> </customer> <customer> <id>02</id> <name>Susan</name> <discount id='fasten' /> <discount id='lumber' /> </customer> <customer> <id>03</id> <name>Paul</name> <discount id='garden' /> <discount id='plumb' /> </customer> 我需要获取同时享有管道折扣和木材折扣的客户的姓名,即约翰,#1。有很多顾客,有很多不同的折扣。 我可以使用 LINQ 进行 OR 查询 var xml = XElement.Load(@"C:\customers.xml"); var result = from customer in xml.Descendants("customer") from discount in customer.Descendants("discount") where (string)discount.Attribute("id").Value == "plumb" || (string)discount.Attribute("id").Value == "lumber" select customer.Descendants("name"); 返回 John、Susan 和 Paul,但 ANDing 不返回任何内容,因为没有一个折扣 ID 可以同时等于“plumb”和“lumber”。 我一般不熟悉 LINQ。我十年前在一个项目中使用过它。我可以使用更详细的方法,迭代每个客户的折扣节点,但我宁愿寻求帮助。 使用 from discount in customer.Descendants("discount") 会使事情变得复杂,因为此时您正在处理单独的折扣,而您的逻辑需要检查每个客户的多个折扣。 相反,这是编写查询的一种方法: var result = from customer in xml.Descendants("customer") where customer.Descendants("discount").Any(discount => discount.Attribute("id").Value == "plumb") && customer.Descendants("discount").Any(discount => discount.Attribute("id").Value == "lumber") select customer.Descendants("name"); 这将两张折扣支票放入一个 where 子句中,并与 && 组合。

回答 1 投票 0

如何使用 Jakarta XML Unmarshaller 解组没有命名空间的 XML?

我正在尝试使用 jakarta.xml.bind.Unmarshaller 将 XML 解组为 Java 对象,但我的 XML 不包含某些默认名称空间,因为它们已经是 XSD 的一部分。如何...

回答 1 投票 0

无法读取maven的setting.xml文件

我已经从 Eclipse 市场下载了我的 Maven 插件,现在我 需要在window-preference-maven-user设置中设置setting.xml文件 块,但我找不到setting.xml 文件,我有...

回答 3 投票 0

在 Apache Cxf 端点中取消转义 Xml 特殊字符

我需要在我的 apache cxf 端点中返回未转义的 xml 字符串。下面我粘贴了我的代码部分、当前返回的 xml 字符串和所需的 xml 字符串: @WebService(

回答 2 投票 0

使用 php 如何替换文本中的 html 标签名称

例如,我想更改某些文本内的标签名称; 例如,我想更改某些文本内的标签名称; <div class="col-sm-12 col-md-6 col-lg-4 float-left"> <div class="service-one__single"> <span class="service-one__dot-1">BLA BLA 1</span> <span class="service-one__dot-2">BLA BLA 2</span> <span class="service-one__dot-3">BLA BLA 3</span> </div> </div> 我想用 <span> 动态替换 <p> 标签。更改后我想看到如下代码; <div class="col-sm-12 col-md-6 col-lg-4 float-left"> <div class="service-one__single"> <p class="service-one__dot-1">BLA BLA 1</p> <p class="service-one__dot-2">BLA BLA 2</p> <p class="service-one__dot-3">BLA BLA 3</p> </div> </div> 我找到了解决方案...这是解决方案; //--REPLACE <span> WITH <p>-- $page_html = '<div class="col-sm-12 col-md-6 col-lg-4 float-left"> <div class="service-one__single"> <span class="service-one__dot-1">BLA BLA 1</span> <span class="service-one__dot-2">BLA BLA 2</span> <span class="service-one__dot-3">BLA BLA 3</span> </div> </div>'; $page_html = preg_replace("/<span\s(.+?)>(.+?)<\/span>/is", "<p $1>$2</p>", $page_html); //--REPLACE <span> WITH <p>--

回答 1 投票 0

在`xml2`中使用断行和缩进格式化sld文件(xml)

我正在以编程方式为地理服务器编写大量 SDL 文件,这些文件的底层是 XML 文件。我正在使用 {xml2},虽然我在一个小reprex中获得了正确的格式(每个标签在一行中并且带有

回答 1 投票 0

如何修复底部导航栏高度Android Studio

我已经被这个问题困扰了几个星期了,我不知道如何解决它。我尝试以多种不同的方式搜索如何解决这个问题,但我没有找到任何有用的东西......

回答 1 投票 0

如何按照计划代码的顺序获取每个元素值

我需要表行应按照代码值的顺序获取 输入 xml 我有: 20000 我需要表行应按照代码值的顺序获取 输入我有的xml: <Group> <Maps> <Map> <Code>20000</Code> </Map> <Map> <Code>30000</Code> </Map> </Maps> <Details> <Detail> <Code>30000</Code> <Description>Benefit</Description> </Detail> <Detail> <Code>20000</Code> <Description>Non-Benefit</Description> </Detail> </Details> </Group> XSL 我已经使用变量尝试了以下操作: <xsl:template match="Group"> <xsl:variable name="MapCode" select="Maps/Map/Code"/> <row> <entry>Code</entry> <xsl:for-each select="Maps/Map"> <entry> <p> <xsl:value-of select="Code"/> </p> </entry> </xsl:for-each> </row> <row> <entry>Level</entry> <xsl:for-each select="Details/Detail[Code=$MapCode]"> <entry> <p> <xsl:value-of select="Description"/> </p> </entry> </xsl:for-each> </row> </xsl:template> 我得到的实际输出: <row> <entry>Code</entry> <entry> <p>20000</p> </entry> <entry> <p>30000</p> </entry> </row> <row> <entry>Level</entry> <entry> <p>Benefit</p> </entry> <entry> <p>Non-Benefit</p> </entry> </row> 预期输出应该是: <row> <entry>Code</entry> <entry> <p>20000</p> </entry> <entry> <p>30000</p> </entry> </row> <row> <entry>Level</entry> <entry> <p>Non-Benefit</p> </entry> <entry> <p>Benefit</p> </entry> </row> 根据 Code 订单匹配,应选择 Description 值。我将变量用于 Code 匹配。但它仍然错误地选择了 Description 值。所以描述应该按照代码顺序选择。 我猜你想做类似的事情: XSLT 2.0 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:key name="detail-by-code" match="Detail" use="Code" /> <xsl:template match="/Group"> <xsl:variable name="headings" select="Maps/Map" /> <table> <!-- header --> <row> <xsl:for-each select="$headings"> <entry> <p> <xsl:value-of select="Code"/> </p> </entry> </xsl:for-each> </row> <!-- data --> <xsl:for-each select="Details"> <xsl:variable name="current-row" select="." /> <row> <xsl:for-each select="$headings"> <entry> <p> <xsl:value-of select="key('detail-by-code', Code, $current-row)"/> </p> </entry> </xsl:for-each> </row> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet>

回答 1 投票 0

如何在XML标签之间添加一个字符串,该字符串的值是从文本文件获取的? (重击)

我有一些 XML 标签名称存储在一个文本文件中,这是一个 XML 文件,我想在其中添加相同的字符串作为这些标签的另一个值。 XML 标签文件: 姓名1 姓名2 姓名3 XML 文件: 我有一些 XML 标签名称存储在一个文本文件中,这是一个 XML 文件,我想在其中添加相同的字符串作为这些标签的另一个值。 XML 标签文件: name1 name2 name3 XML 文件: <Category name="name1">value1 value2 value3 ...</Category> <Category name="name2">value1 value2 value3 ...</Category> <Category name="name3">value1 value2 value3 ...</Category> 我尝试了几十个“sed”、“cat”命令,但非常痛苦......我期望在使用脚本/命令后,XML 文件会如下所示: <Category name="name1">VALUE4 value1 value2 value3 ...</Category> <Category name="name2">VALUE4 value1 value2 value3 ...</Category> <Category name="name3">VALUE4 value1 value2 value3 ...</Category> (VALUE4是我要添加的字符串,我想将它添加为第一个值!) 提前感谢您的帮助! 勒普松 这项工作的工具是 XSLT。 <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSLTransform" version="3.0" expand-text="yes"/> <xsl:variable name="tags" select="tokenize(unparsed-text('tags-file.txt'))"/> <xsl:mode on-no-match="shallow-copy"/> <xsl:template match="Category[@name=$tags]/text()"> <xsl:text>VALUE4 {.}</xsl:text> </xsl:template> </xsl:transform> 我在这里使用了XSLT 3.0。 1.0 处理器的使用范围更广,但这使得代码更加冗长。 不要尝试使用基于文本的工具来执行此操作。正如您所发现的,正确执行它是一件很痛苦的事情,当您成功时,只要有人提供与您测试的文件稍有不同的 XML 文件,您的代码就会失败。

回答 1 投票 0

如何使用 python tree.write(file_name) 保存 xml 结构?

我想使用 Python 将带有子元素的元素添加到我的 xml 文件中。但更改文件后,元素和子元素看起来像一条线,而不是像 xml 树。 我这样做: 树 = ET.parse('现有...

回答 1 投票 0

必须声明属性并且元素类型的内容必须匹配

我三天来一直在尝试弄清楚如何使用我的 servlet 项目和 maven 来启动我的 weblogic 服务器,但我发现它给了我 web.xml 错误。我有一个同事...

回答 1 投票 0

soap 1.2 消息的 http 标头中应包含什么内容类型?

我有一个问题,我的 xml-da 客户端使用 zsi 2.2.2 库生成看起来像肥皂 1.2 消息的消息,因为我可以看到这一行。 xmlns:soapenv="http://www.w3.org/2003/05/s...

回答 1 投票 0

Android 错误:您必须指定有效的布局参考。布局 ID。在日食中

我已经使用 Eclipse 工作了几个星期了。我的代码运行正常,但突然停止运行。我收到这个错误, main.xml:您必须指定有效的布局

回答 2 投票 0

STAX 解析器因大型 XML 而失败

我遇到了一个很奇怪的情况。 我有 2 个 XML,我正在尝试将它们合并并形成一个 XML。 我正在使用 STAX Parser 来实现它。 它与小文件完美配合,但...

回答 2 投票 0

XML 解析获取小括号内的字符串 <something="How to get this string">

这是我尝试解析的 XML 数据的示例。我无法弄清楚如何解析嵌套在括号内的“”内的数据,即 这是我尝试解析的 XML 数据的示例。我无法弄清楚如何解析嵌套在括号内的“”内的数据,即。例如, id 想要获取“如何获取此字符串”。如果数据位于打开和关闭胡萝卜之间,我就可以获得数据。 <METAR> <sky_condition sky_cover="OVC" cloud_base_ft_agl="2100"/> <---- get the OVC from sky_cover <flight_category>IFR</flight_category> <metar_type>METAR</metar_type> </METAR> 这是我的 XML 解析器代码和委托函数 import Foundation class FeedParser: NSObject, XMLParserDelegate { private var airportItems: [FlightCategory] = [] // track parsing private var currentAirportElement: String = "" // track current item being parsed private var parserCompletiongHandler: (([FlightCategory]) -> Void)? // handle completion of parsing private var currentAirportFlightCategory: String = "" { didSet { // trim whitespace currentAirportFlightCategory = currentAirportFlightCategory.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) } } private var currenAirportSkyCondition: String = "" { didSet { currenAirportSkyCondition = currenAirportSkyCondition.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) } } // MARK: - URL Request // Hnadle Parsing feed func parseFeed(url: String, completionHandler: (([FlightCategory]) -> Void)?) { self.parserCompletiongHandler = completionHandler // URL Session Reques let request = URLRequest(url: URL(string: url)!) let session = URLSession.shared let task = session.dataTask(with: request) { data, response, error in // if no data guard let data = data else { if let error = error { print(error.localizedDescription) } return } // if data // parse xml data let parser = XMLParser(data: data) parser.delegate = self parser.parse() } task.resume() } // MARK: - XML Parser Delegate func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) { // track current item currentAirportElement = elementName if currentAirportElement == "METAR" { // it is there // currentAirportElement = "" currentAirportFlightCategory = "" currenAirportSkyCondition = "" } } // Once Parser get values of element Handler func parser(_ parser: XMLParser, foundCharacters string: String) { switch currentAirportElement { case "flight_category": currentAirportFlightCategory += string default: break } } // Once Parser at End of element Handler func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) { if elementName == "METAR" { // "flight_category" let airportItems = FlightCategory(flight_category: currentAirportFlightCategory, sky_condition: currenAirportSkyCondition) self.airportItems.append(airportItems) } } // Call Completion Handler upon finishing Parsing func parserDidEndDocument(_ parser: XMLParser) { parserCompletiongHandler?(airportItems) } // Handle Parsing Errors func parser(_ parser: XMLParser, parseErrorOccurred parseError: any Error) { print(parseError.localizedDescription) } } 这是我加载 XML 的方式 private func loadXMLData() async { print("hmmmmm") let acwXMLURL = "https://aviationweather.gov/api/data/dataserver?requestType=retrieve&dataSource=metars&stationString=\KVNY&startTime=2024-03-10T21%3A44%3A22Z&format=xml&mostRecent=true" // parser feeder let feeder = FeedParser() feeder.parseFeed(url: acwXMLURL) { data in self.detaileHomeAirportXML = data } } private func handleXMLData() async { detaileHomeAirportXML?.forEach { item in currentFltCat = item.flight_category model.airportFltCat = item.flight_category print("XML data handled: \(currentFltCat)") if currentFltCat == "VFR" { color = Color(.green) } else if currentFltCat == "MVFR" { color = Color(.blue) } else if currentFltCat == "IFR" { color = Color(.red) } else if currentFltCat == "LIFR" { color = Color(red: 208 / 255, green: 45 / 255, blue: 208 / 255) } } } 在didStartElement委托功能中,您会收到一本attributes字典。这包含标签的属性。 你会写类似 - func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:]) { switch(elementName) { case "METAR": currentAirportFlightCategory = "" currenAirportSkyCondition = "" case "sky_condition": skyCover = attributes["sky_cover"] cloudBase = attributes["cloud_base_ft_agl"] default: print("Ignoring element \(elementName)") } } 请注意,这些将是可选字符串,因此您需要处理它并根据需要转换为整数。

回答 1 投票 0

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