- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 XML 字符串:
<Transactions>
<TaskFormInstance TransactionID="8230">
<uuid>df534b09-30fc-fe81-e411-a2862ef53439</uuid>
<taskId>272</taskId>
<status>3-COLLECTED</status>
<element>
<uuid>a99afff5-0927-21b7-e411-a286183d17bb</uuid>
<elementNo>1</elementNo>
<label>label1</label>
<type>Integer</type>
<dependsOn>0</dependsOn>
<minimumValue>0</minimumValue>
<maximumValue>100</maximumValue>
<minimumCharacters xsi:nil="true"/>
<maximumCharacters xsi:nil="true"/>
</element>
<element>
<uuid>a99afff5-0927-21b7-e411-a2864e4515bb</uuid>
<elementNo>2</elementNo>
<label>label2</label>
<type>Integer</type>
<dependsOn>0</dependsOn>
<minimumValue>0</minimumValue>
<maximumValue>50</maximumValue>
<minimumCharacters xsi:nil="true"/>
<maximumCharacters xsi:nil="true"/>
</element>
</TaskFormInstance>
</Transactions>
我正在使用 simplexml 将其转换为 Java 对象。
Serializer serializer = new Persister();
Reader reader = new StringReader(xml);
TaskFormTransactionListTransportBean taskFormTransactionListTransportBean = serializer.read(TaskFormTransactionListTransportBean.class, reader, false);
这是我转换成的 bean:
@Root(name="Transactions")
public class TaskFormTransactionListTransportBean {
@ElementList(inline = true, required = false)
private ArrayList<TaskFormTransportBean> taskFormTransportBeans;
public TaskFormTransactionListTransportBean() {
taskFormTransportBeans = new ArrayList<TaskFormTransportBean>();
}
public ArrayList<TaskFormTransportBean> getTaskFormTransportBeans() {
return taskFormTransportBeans;
}
public void setTaskTransactions(ArrayList<TaskFormTransportBean> taskFormTransportBeans) {
this.taskFormTransportBeans = taskFormTransportBeans;
}
和:
@Root(name="TaskFormInstance")
public class TaskFormTransportBean {
@Attribute(name="TransactionID")
private String transactionId;
@Element(name="uuid",required=true)
private String uuid;
@Element(name="status",required=false)
private String status;
@Element(name="name",required=false)
private String name;
@Element(name="taskFormNumber",required=false)
private String taskFormNumber;
@ElementList(inline = true, required = false)
private ArrayList<ElementTransportBean> elements;
public String getTransactionId() {
return transactionId;
}
public void setTransactionId(String transactionId) {
this.transactionId = transactionId;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTaskFormNumber() {
return taskFormNumber;
}
public void setTaskFormNumber(String taskFormNumber) {
this.taskFormNumber = taskFormNumber;
}
public ArrayList<ElementTransportBean> getElements() {
return elements;
}
public void setElements(ArrayList<ElementTransportBean> elements) {
this.elements = elements;
}
}
和:
@Root(name="element")
public class ElementTransportBean {
@Element(name="uuid",required=true)
private String uuid;
@Element(name="value",required=false)
private String value;
@Element(name="elementNo",required=true)
private String elementNo;
@Element(name="dependsOn",required=false)
private String dependsOn;
@Element(name="label",required=true)
private String label;
@Element(name="type",required=true)
private String type;
@Element(name="minimumValue",required=false)
private String minValue;
@Element(name="maximumValue",required=false)
private String maxValue;
@Element(name="minimumCharacters",required=false)
private String minNoOfChars;
@Element(name="maximumCharacters",required=false)
private String maxNoOfChars;
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getElementNo() {
return elementNo;
}
public void setElementNo(String elementNo) {
this.elementNo = elementNo;
}
public String getDependsOn() {
return dependsOn;
}
public void setDependsOn(String dependsOn) {
this.dependsOn = dependsOn;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getMinValue() {
return minValue;
}
public void setMinValue(String minValue) {
this.minValue = minValue;
}
public String getMaxValue() {
return maxValue;
}
public void setMaxValue(String maxValue) {
this.maxValue = maxValue;
}
public String getMinNoOfChars() {
return minNoOfChars;
}
public void setMinNoOfChars(String minNoOfChars) {
this.minNoOfChars = minNoOfChars;
}
public String getMaxNoOfChars() {
return maxNoOfChars;
}
public void setMaxNoOfChars(String maxNoOfChars) {
this.maxNoOfChars = maxNoOfChars;
}
}
我收到以下异常:
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[15,42]
Message: http://www.w3.org/TR/1999/REC-xml-names-19990114#AttributePrefixUnbound?minimumCharacters&xsi:nil&xsi
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:598)
at com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:83)
at org.simpleframework.xml.stream.StreamReader.read(StreamReader.java:110)
at org.simpleframework.xml.stream.StreamReader.next(StreamReader.java:94)
at org.simpleframework.xml.stream.NodeReader.readElement(NodeReader.java:121)
at org.simpleframework.xml.stream.InputElement.getNext(InputElement.java:216)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:447)
at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
at org.simpleframework.xml.core.Composite.read(Composite.java:201)
at org.simpleframework.xml.core.Composite.read(Composite.java:148)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:190)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:167)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:124)
at org.simpleframework.xml.core.Composite.readVariable(Composite.java:623)
at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573)
at org.simpleframework.xml.core.Composite.readUnion(Composite.java:549)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:532)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:445)
at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
at org.simpleframework.xml.core.Composite.read(Composite.java:201)
at org.simpleframework.xml.core.Composite.read(Composite.java:148)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:190)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:167)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:144)
at org.simpleframework.xml.core.Composite.readVariable(Composite.java:619)
at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573)
at org.simpleframework.xml.core.Composite.readUnion(Composite.java:549)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:532)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:445)
at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
at org.simpleframework.xml.core.Composite.read(Composite.java:201)
at org.simpleframework.xml.core.Composite.read(Composite.java:148)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.Persister.read(Persister.java:625)
at org.simpleframework.xml.core.Persister.read(Persister.java:606)
at org.simpleframework.xml.core.Persister.read(Persister.java:584)
at org.simpleframework.xml.core.Persister.read(Persister.java:562)
at za.co.company.androidsoap.poc.AndroidSoapTest.getTaskFormInserts(AndroidSoapTest.java:323)
at za.co.company.androidsoap.poc.AndroidSoapTest.main(AndroidSoapTest.java:76)
za.co.company.androidsoap.poc.TransportException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[15,42]
Message: http://www.w3.org/TR/1999/REC-xml-names-19990114#AttributePrefixUnbound?minimumCharacters&xsi:nil&xsi
at za.co.company.androidsoap.poc.AndroidSoapTest.getTaskFormInserts(AndroidSoapTest.java:333)
at za.co.company.androidsoap.poc.AndroidSoapTest.main(AndroidSoapTest.java:76)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[15,42]
Message: http://www.w3.org/TR/1999/REC-xml-names-19990114#AttributePrefixUnbound?minimumCharacters&xsi:nil&xsi
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:598)
at com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:83)
at org.simpleframework.xml.stream.StreamReader.read(StreamReader.java:110)
at org.simpleframework.xml.stream.StreamReader.next(StreamReader.java:94)
at org.simpleframework.xml.stream.NodeReader.readElement(NodeReader.java:121)
at org.simpleframework.xml.stream.InputElement.getNext(InputElement.java:216)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:447)
at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
at org.simpleframework.xml.core.Composite.read(Composite.java:201)
at org.simpleframework.xml.core.Composite.read(Composite.java:148)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:190)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:167)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:124)
at org.simpleframework.xml.core.Composite.readVariable(Composite.java:623)
at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573)
at org.simpleframework.xml.core.Composite.readUnion(Composite.java:549)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:532)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:445)
at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
at org.simpleframework.xml.core.Composite.read(Composite.java:201)
at org.simpleframework.xml.core.Composite.read(Composite.java:148)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:190)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:167)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:144)
at org.simpleframework.xml.core.Composite.readVariable(Composite.java:619)
at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573)
at org.simpleframework.xml.core.Composite.readUnion(Composite.java:549)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:532)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:445)
at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
at org.simpleframework.xml.core.Composite.read(Composite.java:201)
at org.simpleframework.xml.core.Composite.read(Composite.java:148)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.Persister.read(Persister.java:625)
at org.simpleframework.xml.core.Persister.read(Persister.java:606)
at org.simpleframework.xml.core.Persister.read(Persister.java:584)
at org.simpleframework.xml.core.Persister.read(Persister.java:562)
at za.co.company.androidsoap.poc.AndroidSoapTest.getTaskFormInserts(AndroidSoapTest.java:323)
... 1 more
如果我从 xml 字符串中删除以下行,它就可以正常工作:
<minimumCharacters xsi:nil="true"/>
<maximumCharacters xsi:nil="true"/>
如果我保留那些包含“xsi:nil”属性的行,如何让 simplexml 正确解析 xml?
最佳答案
我想通了。提供的 XML 并不完全正确。
我将 namespace 添加到第一个元素:
<Transactions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</Transactions>
Simplexml 现在可以无一异常(exception)地解析它。
我只要求正确生成正在生成的 xml。
关于android - 在 Android 上使用 simplexml 将 xml 字符串转换为对象给出 ParseError (AttributePrefixUnbound),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27565846/
这里发生了什么事? $string = XML; $xml = simplexml_load_string($string); // $xmlobj = sim
当我将 SimpleXML 解析为对象数组的一部分的字符串时,我一直坚持让 SimpleXML 返回一个对象。 $a = '1145869290false43false'; $resultA = si
我有两个 SimpleXML 对象。如何将一个对象添加为另一个对象的子元素。 请注意,这不能通过 addChild 方法完成,因为它会在添加之前将给定值转换为字符串。 最佳答案 我发现 SimpleX
http://pastie.org/1701923这是从我查询邮政编码的 API 返回的 XML。 我想从每个条目中提取数据,然后直接对其进行循环或将其放入我可以循环的数组中。我似乎无法正确处理。这是
这个问题在这里已经有了答案: remove xml version tag when a xml is created in php (10 个答案) 关闭 7 年前。 我使用 SimpleXML
与 DOM 或 Expat 解析器相比,SimpleXML 仅仅用几行代码就可以从 XML 元素中读取文本数据。 SimpleXML 可把 XML 文档(或 XML 字符串)转换为对象,比如:
我有一些看起来像这样的 XML: true 42 ;jsessionid=42 SimpleXML 以这种方式解析它: $obj
我有一个具有命名空间属性的 XML 文档。 XML 看起来像: 我如何提取 and
我想从元素id的属性创建一个数组,但是以下代码返回所有XML。 PHP文件: $xmlfile=simplexml_load_file("test.xml"); $test=$xmlfile->xpa
我有一个看起来像这样的XML结构: 0 Some survey question Answer 1 0 Answ
我正在尝试访问具有命名空间声明的节点中没有命名空间声明的节点列表。我的 XML 文件有一个带有命名空间 ehd 的主节点,在同一命名空间内有两个子节点 header、body。但是,主体节点内的所有子
我正在使用 SimpleXML 和 XPath 尝试获取子节点('IndexEntry)属性('indexKey')的值。节点的命名空间,我已在另一个节点(“记录”)上成功测试。由于某种原因,该节点的
我有两棵 XML 树,想将一棵树作为叶子添加到另一棵树上。 显然: $tree2->addChild('leaf', $tree1); 不起作用,因为它仅复制第一个根节点。 好吧,所以我想我应该遍历整
我正在使用 SimpleXML http://simple.sourceforge.net/home.php 在我的 Android 应用程序中, 我从 API 获取数据如下:
我想使用 SimpleXML 读取并解析包含员工信息的 XML 文件。框架。这是我的 XML 文件: 29 Pankaj
我正在尝试在 android 中使用 simplexml 解析此 xml 字符串: " " 是的,我知道门标签应该立即关闭,而不是在声明所有门标签后关闭,我无法控制这个
我有一个具有这种结构的 XML 文件:
请,我需要解析包含汽车信息的 XML 文件。我在汽车、照片中完成了所有操作,但我需要在额外的表中包含 id、汽车表 id 的外键,并且所有汽车都有随机的 Equipment_id。 我需要将其放入“设
我有一个看起来像这样的 xml: 在 xml 映射 java 代码中我有这样的东西: public class A { @Element(required=false)
我有一个xml文档如下: Calculations Description First Description Alan
我是一名优秀的程序员,十分优秀!