可扩展标记语言(XML)是一种灵活的结构化文档格式,用于定义人类和机器可读的编码规则。
处理这个文件 tei,如何从 html 中的 Gio vanni 和 Giovanni 获取输出 Gio|vanni
如何使用Web.config中<appSettings>中的变量来配置sessionState?
我想在web.config的appSettings中有一个密钥: 基于这个密钥,我希望我的 ASP.NET 4.8 Web 应用程序使用基于 cookie
我正在使用 StAX Iterator api 来读取 xml。 XML: 我正在使用 StAX Iterator api 来读取 xml。 XML: <FormData OID="QUAL"> <IGData IGRepeatKey="1" IGOID="SQUAL" TType="Insert"> <IData Value="0859" IOID="SID"></IData> <IData Value="DM" IOID="RDOMAIN"></IData> </IGData> <IGData IGRepeatKey="1" IGOID="SQUAL" TType="Insert"> <IData Value="0860" IOID="SID"></IData> <IData Value="2013-01-03T02:00" IOID="QVAL"></IData> </IGData> </FormData> 和 Stax 代码: while(xmlEventReader.hasNext()){ xmlEvent = xmlEventReader.nextEvent(); eventString = xmlEvent.toString(); if(xmlEvent.isStartElement() && eventString.contains("FormData") && eventString.contains("QUAL")){ //do something } } 它在我的本地环境中工作(eventString 具有 xmlEvent 的完整文本)。 但是当我将其部署到服务器中时,eventString 包含类似“Stax Event #1”的内容。所以如果条件返回 false。 我认为两者都使用不同的 XMLEvent 实现。所以我通过代码检查了它,两个环境中的jar都是相同的:jre1.8.0_73/lib/rt.jar!/javax/xml/stream/events/XMLEvent.class 如何获取XMLEvent对象的全文?我在这里做错了什么吗?请建议任何其他替代方案。 每个 XML 事件都有 3 个状态 起始元素 是人物 结束元素 例如,如果您需要从 xml 文件访问“IGRepeatKey”的数据,则在状态(Start Element)中,您需要检查 IGData 标记是否已启动(如果为 true)。启动一个新的迭代器,它将迭代所有标签,即 IGRepeatKey 、 IGOID 、 TType 。 尝试这样的事情 Iterator<Attribute> iterator = element.getAttributes(); while (iterator.hasNext()) { Attribute attribute = (Attribute)iterator.next(); QName name = attribute.getName(); String value = attribute.getValue(); System.out.println(name+" + "+value); } 在 xml.isStartElement() 块中添加此迭代器。 我知道这是一个非常古老的问题,但我认为对于任何其他在理解 XMLEvent API 时遇到类似问题的人来说,它值得一个更完整的答案: 正如 Kunal 上面所说,XMLEvent 是一种通用类型,可能是他列出的三件事之一 - 开始元素、字符(用于元素内的文本 - 例如,给定 xml mytext,您将获得一个开始元素事件对于 mytag,然后是“mytext”的字符事件,或结束元素事件。 XMLEvent 接口提供了“isStartElement()”、“isCharacters()”和“isEndElement()”方法来测试它是什么类型。 因此,要查找开始元素的名称和属性,您可以通过调用 XMLEvent.asStartElement() 获取更具体的类(称为 StartElement),然后使用该类上的方法: while(xmlEventReader.hasNext()){ xmlEvent = xmlEventReader.nextEvent(); if (xmlEvent.isStartElement()) { StartElement s = xmlEvent.asStartElement(); //getName returns a QName object, QName.getLocalPart() returns the element name if(s.getName().getLocalPart().equals("FormData") && s.getAttributeByName(new QName(null, "OID")).getValue().equals("QUAL")){ //Do Something } } }
我有一个表示 XML 元素的类: [系统.SerializedAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(AnonymousT...
我有一个表示 XML 元素的 C# 类: [系统.SerializedAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Anonymo...
我创建 RSS 项目。我有一个名为 date_published 的列,它是 MS SQL 数据库中的 DateTime 列。 例如它包含“2011-05-04 15:19:05.630” 下面是我重新生成RSS接受的C#代码日期...
如何将上次构建日期放入 rss xml 中? 我一直在寻找,例如: https://validator.w3.org/feed/docs/rss2.html 我什至复制粘贴 w3.org 给出的示例中完全相同的标签...
在 C# 中使用命名空间对 XML 进行 XML 到 LINQ 解析
我有以下 XML: 我有以下 XML: <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'> <env:Header/> <env:Body> <DigSales xmlns="urn:nike:sale:DigitalSalesToSabrix" xmlns:ns2="http://xmlns.int.nike.com/WSFault" FileTime="2014-09-19T23:16:21Z"> <Tran OrderType="STANDARD" OperatorID="" IsComplimentary="false" ConsumerID="1260046" Currency="USD" InvoiceNo="17779214" BillDate="2014-09-19" BillTime="2014-09-19T22:23:14Z" OrderDate="2014-09-18T20:50:01Z" TranDate="2014-09-19T22:23:14Z" OrderNo="O917950017" StoreNo="150" TranNo="17779214" IsTaxExempt="false"> <Item isTaxExempt="false" IsTaxInvoiceStatus="true" TaxDate="2014-09-18T13:49:56" IsShipSend="true" Style="SX4801" Commodity_CD="531024" Desc="Nike Hyper Elite Crew Basketball Socks" ActValue="36.00" ID="00884498939512" InvSource="BRD" NormValue="36.00" Qty="2" Type="2001" isNotOnFile="false"> <Tax IsManualOverride="false" TaxAmt="3.15"/> <ShipTo Country="US" GeoCode="8382" PostalCode="94102" State="CA" City="SFO" District="" Address2="" Address1="P.O. Box 15687"/> <ShipFrom ShipFromNode="BRD" Country="US" GeoCode="7533" PostalCode="38118" State="TN" City="Memphis" Address2="" Address1="4775 TUGGLE RD DOOR 54"/> </Item> <Item isTaxExempt="false" IsTaxInvoiceStatus="true" TaxDate="2014-09-18T13:49:56" IsShipSend="false" Style="" Commodity_CD="7812" Desc="Shipping" ActValue="8.00" ID="00000000000100" NormValue="8.00" Qty="1" Type="2002" isNotOnFile="false"> <Tax IsManualOverride="false" TaxAmt="0.70"/> <ShipTo Country="US" GeoCode="8382" PostalCode="94102" State="CA" City="SFO" District="" Address2="" Address1="P.O. Box 15687"/> <ShipFrom ShipFromNode="150" Country="US" GeoCode="7533" PostalCode="38118" State="TN" City="Memphis" Address2="" Address1="4775 TUGGLE RD DOOR 54"/> </Item> <ContactInfo LastName="PO Box" FirstName="Test"/> </Tran> </DigSales> </env:Body> </env:Envelope> 我无法解析为“Tran”。我写了以下内容用于解析: var body = xdoc.Descendants(XNamespace.Get("http://schemas.xmlsoap.org/soap/envelope/") + "Body").Single(); var nmspc = XNamespace.Get("http://schemas.xmlsoap.org/soap/envelope/"); var tran = from trans in xdoc.Element(nmspc + "Body").Elements("DigSales") select trans.Elements("DigSales").Elements("Tran").ToList(); 请帮忙。 这将为您提供 IEnumerable 元素的 Tran: var nmspc = XNamespace.Get(@"http://schemas.xmlsoap.org/soap/envelope/"); var ns2 = XNamespace.Get(@"urn:nike:sale:DigitalSalesToSabrix"); var trans = xdoc.Root.Elements(nmspc + "Body").Elements(ns2 + "DigSales").Elements(ns2 + "Tran");
如何在Python中处理和更新(更改属性、添加节点等)带有DOCTYPE的XML文件,而不删除或更改“DOCTYPE”
我有几个 xml 文件,我想处理并更新它们的节点/属性。我有几个可以做到这一点的脚本示例,但它们都稍微改变了 xml 结构,r...
XML: RVM_GWR_Class166_DMSL_C 166级 XML: <DLC> <ObjectClass>RVM_GWR_Class166_DMSL_C</ObjectClass> <ShortName>Class166</ShortName> </DLC> <DLC> <ObjectClass>RVM_BR_Class170_DMCL_W_C</ObjectClass> <ShortName>Class170</ShortName> </DLC> 之前的代码 var values = xml.Descendants("DLC") .Where(i => i.Element("ObjectClass").Value == locoName) .Select(DLC => new { ShortName = (string)DLC.Element("ShortName"), DisplayName = (string)DLC.Element("DisplayName"), }); 目前,代码的工作方式是查看 locoName 字符串是否与 ObjectClass xml 元素匹配。 但我真正需要做的是这样的: .Where(locoName.Contains(i => i.Element("ShortName").Value)) 以上内容无法编译,原因是: 无法将 lambda 表达式转换为“string”类型,因为它不是委托类型 我需要在 locoName 字符串包含“ShortName”XML 元素的位置进行匹配。 locoName 将会是这样的: RVM_GWR_Class166_Z_ABC123 即; Class166 部分将匹配。 我不太清楚如何在 LINQ 中做到这一点。 您的.Where表达不正确。应该是: .Where(x => locoName.Contains(x.Element("ShortName").Value)) 检查 locoName 包含 ShortName 属性值。 var values = xml.Descendants("DLC") .Where(x => locoName.Contains(x.Element("ShortName").Value)) .Select(DLC => new { ShortName = (string)DLC.Element("ShortName"), DisplayName = (string)DLC.Element("DisplayName"), });
对于“hello world”类型的 xml 文档: 对于“hello world”类型的 xml 文档: <?xml version="1.0" encoding="UTF-8"?> <!-- see http://www.w3.org/TR/REC-xml-names/ --> <bk:book xmlns:bk="urn:loc.gov:books" xmlns:isbn="urn:ISBN:0-395-36341-6"> <bk:title>Cheaper by the Dozen</bk:title> <isbn:number>1568491379</isbn:number> </bk:book> 您可以出于自定义目的任意定义骨灰盒吗? 简而言之,是的。 你可以随心所欲地化妆。 我找到了 “XSD 文件,从哪里获取 xmlns 参数?”答案非常有用,它让我看到了文章“XML设计的原则:小心使用XML名称空间”,这似乎是说,是的,你可以按照你喜欢的方式编写它们,而且确实你应该,如果你不是'不会将给定 URL 的文档放到网上。
模式定义中<xsd:all>和<xsd:sequence>之间的区别?
我正在使用 xsd:all 复杂类型。当我在验证时错过任何强制性元素时,它将显示所有元素。它不会显示确切的丢失元素。 但如果我使用 xsd:sequence...
如何在 XSLT 中选择属性值等于 current()/@value -1 的前一个兄弟?
我是 XSLT 的新手,尽管我进行了研究,但我很难找到解释或至少将它们应用到我的案例中,所以我在这里碰碰运气,提前感谢您的关注 我有一个 XML 结构...
在android中我实现了水平滚动视图n将滚动条设置为true, 但在某些设备中它是可见的,但在其他设备中这不是我出错的地方,你能建议一下吗 而且这两款设备都是...
如何使用 configSolver.xml 中的选择过滤器覆盖默认配置的阶段?
从configSolver.xml中的以下配置开始。 如果我想通过为 ChangeMove 和 SwapMove 类添加过滤器选择类来覆盖此配置(据我所知,...的联合)
如何解决android element/attribute is not allowed here错误?
我是初学者,正在学习Android开发。我在 Windows 8.1 上使用 Android Studio 版本 4.1.1。 我正在制作一个单屏生日快乐卡应用程序。当我打开activity_main.xml时
在 python 中执行我的第一步时,我尝试解析和更新 xml 文件。 xml如下: 在 python 中执行第一步时,我尝试解析并更新 xml 文件。 xml如下: <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet href="util/style/aaaa-2-0.xsl" type="text/xsl"?> <test dtd-version="3.2" xmlns:test="http://www.ich.org/test" xmlns:xlink="http://www.w3c.org/1999/xlink"> <mr> <leaf checksum="88ed245997a341a4c7d1e40d614eb14f" > <title>book name</title> </leaf> </mr> </test> 我想更新校验和的值。我已经用一种方法编写了一个类: @staticmethod def replace_checksum_in_index_xml(xml_file_path, checksum): logging.debug(f"ReplaceChecksumInIndexXml xml_file_path: {xml_file_path}") try: from xml.etree import ElementTree as et tree = et.parse(xml_file_path) tree.find('.//leaf').set("checksum", checksum) tree.write(xml_file_path) except Exception as e: logging.error(f"Error updating checksum in {xml_file_path}: {e}") 我调用该方法: xml_file_path = "index.xml" checksum = "aaabbb" Hashes.replace_checksum_in_index_xml(xml_file_path, checksum) 校验和确实已更新。而且整个 xml 结构也发生了变化: <test dtd-version="3.2"> <mr> <leaf checksum="aaabbb"> <title>book name</title> </leaf> </mr> </test> 如何仅更新给定节点,而不更改给定 xml 文件中的其他任何内容? 不幸的是,我还没有找到使用您正在使用的库 xml.etree 的解决方案。相反,请考虑使用 lxml。以下对我有用: class Hashes: @staticmethod def replace_checksum_in_index_xml(xml_file_path, checksum): try: from lxml import etree tree = etree.parse(xml_file_path) leaf = tree.find('.//leaf') if leaf is not None: leaf.set("checksum", checksum) with open(xml_file_path, 'wb') as file: tree.write(file, xml_declaration=True, encoding='utf-8', pretty_print=False) except Exception as e: print(f"Error updating checksum in {xml_file_path}: {e}")
XML 布局 - JetPack Compose,哪个最适合 Android 开发?
在进行新的Android项目之前,我需要在“Xml布局”和“Jetpack compose”之间做出决定,有什么我应该考虑的吗? 我有使用 xml 布局进行开发的经验,但我没有...
使用 PowerShell Core 7.4.6。 给定文件 /path/to/file.csproj 使用 PowerShell Core 7.4.6。 给定文件/path/to/file.csproj <Project Sdk="Microsoft.NET.Sdk"> <ItemGroup> <ProjectReference Include="Path\To\Something.csproj" /> </ItemGroup> </Project> 我希望以下代码片段将使用内置 XPath ProjectReference 函数从该文件中选择 ends-with 节点 select-xml -path "/path/to/file.csproj" ` -xpath "/Project/ItemGroup/ProjectReference[ends-with(@Include, 'Something.csproj')]" 但是它会产生错误 Select-Xml: Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function. 如果我尝试使用 XPath 函数命名空间显式确定其范围 select-xml -path "/path/to/file.csproj" ` -xpath "/Project/ItemGroup/ProjectReference[fn:ends-with(@Include, 'Something.csproj')]" ` -namespace @{ "fn" = "http://www.w3.org/2005/xpath-functions" } 我收到了不同的错误 Select-Xml: XsltContext is needed for this query because of an unknown function. 我错过了什么? Select-Xml 的文档提到调用 XPath 函数没有限制,因此我假设它们是本机支持的。 .NET 中的内置 XPath 支持仅涵盖 XPath 版本 1.0/1.1 指定的功能 - 并且 ends-with 直到版本 2 才成为 XPath 的一部分。 您可以使用 substring/string-length 来切断字符串的尾部并寻找它: $tailValue = 'Something.csproject' $xPathEndsWithExpression = "/Project/ItemGroup/ProjectReference[substring(@Include, string-length(@Include) - $($tailValue.Length - 1)) = '${tailValue}')]" Select-Xml -Path "/path/to/file.csproj" -XPath $xPathEndsWithExpression