小编IMS*_*SoP的帖子

SimpleXML解析elementlist异常

嗨,我有解析这个xml的问题:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Items>
        <Item>
            <TdlID>202</TdlID>
            <TdlDesc>1234567890</TdlDesc>
            <Due>2013-07-19</Due>
            <Done>0</Done>
            <Creadate>2013-07-08 23:43:51</Creadate>
            <UsrLogin>demouser</UsrLogin>
            <Prj>3211</Prj>
            <Chngdate>2013-07-17</Chngdate>
        </Item>
        <Item>
            <TdlID>218</TdlID>
            <TdlDesc>fghjkljh</TdlDesc>
            <Due>2013-07-31</Due>
            <Done>1</Done>
            <Creadate>2013-07-10 11:06:10</Creadate>
            <UsrLogin>demouser</UsrLogin>
            <Prj>abcd</Prj>
            <Chngdate>2013-07-17</Chngdate>
        </Item>
    </Items>
    <Status>
        <code>0</code>
        <message>Its Working!!!</message>
    </Status>
</Response>
Run Code Online (Sandbox Code Playgroud)

我知道,这个问题在ElementList中是100%,但不知道,在哪里:(

package sk.jbase.todolist.xml;

import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Order;

import java.util.ArrayList;
import java.util.List;

@Element(name = "Items")
@Order(elements = "Item")
public class Items {

    @ElementList(name = "Item")
    protected List<Item> item;

    public List<Item> getItems() {
        if (item == null) {
            item = new ArrayList<Item>();
        }
        return this.item; …
Run Code Online (Sandbox Code Playgroud)

element list unmarshalling simple-framework

3
推荐指数
1
解决办法
2102
查看次数

SimpleXML:元素“id”已被使用

试图解析一个 XML 文件让我感到厌烦。它不是我的,所以我无法编辑它。先看一下(我把不需要的部分剪掉了)

01  <feed>
02    <id>urn:ya.ru:feed/friends/12345678</id>
03    <author>
04      <name>Master</name>
05      <uri>http://test.ya.ru</uri>
06      <y:id>urn:ya.ru:person/12345678</y:id>
07    </author>
08    <title>List of friends posts</title>
09    <updated>2013-08-02T19:14:00Z</updated>
10    <entry>
11      <id>urn:ya.ru:post/110554367/3744</id>
12      <author>
13        <name>MrBigJoker</name>
14        <y:id>urn:ya.ru:person/110554367</y:id>     
15      </author>
16    </entry>
17  </feed>
Run Code Online (Sandbox Code Playgroud)

您可以在第 02、06、11 和 14 行看到ID标签。问题是我在第 14 行收到错误“元素ID已被使用”。
我使用 SimpleXML 和以下三个类:

@Root (name = "feed")
public class Feed { // All lines

    @Element
    private String id;

    @Element
    private Author_feed author;

    @Element
    private String title;

    @Element
    private String …
Run Code Online (Sandbox Code Playgroud)

java xml parsing android simple-framework

3
推荐指数
1
解决办法
1864
查看次数

使用Retrofit反序列化带有文本和子标签的XML标记

我正在使用Retrofit和SimpleXML来解析来自某些公共API的XML响应.我一直在很好地处理所有内容,直到我偶然发现包含自由文本和子标记的XML标记 - 如以下示例所示:

<a>
   Some free-style text
   <b>Even more text!</b>
</a>
Run Code Online (Sandbox Code Playgroud)

为了尝试使用Simple-XML注释进行反序列化,我已经采用了两种方式.请记住,基本上'a'是一个条目标签列表:

首先:

@ElementList(entry = "a", inline = true, required = false) List<A> aList;
Run Code Online (Sandbox Code Playgroud)

'A'定义如下:

public static class A {
    @Text(required = false) protected String a;
}
Run Code Online (Sandbox Code Playgroud)

这很好地读取了自由文本部分,但是任何反序列化'b'标记内容的尝试(例如通过将@Elementw或o @Path注释成员添加到类'A')都失败了.我查看了SimpleXML文档,显然使用时存在以下限制@Text:

管理Text注释使用的规则是每个模式类只能有一个.此外,此注释不能与Element注释一起使用.只有属性注释可以与它一起使用,因为此注释不会在拥有元素中添加任何内容.

第二种方法,更简单:

@ElementList(entry = "a", inline = true, required = false) List<String> aList;
Run Code Online (Sandbox Code Playgroud)

再一次,"a"标签的内容得到了正确的反序列化,但是没有办法找到"b"子标签的内容.

如何使用与JAVA对象相关的纯Simple-XML注释,使用关联的'b'子标签对'a'标签的内容进行反序列化?

java xml android simple-framework retrofit

3
推荐指数
1
解决办法
1215
查看次数

SimpleXML:带有元素列表或文本的元素

我必须解析一个可以有两种类型的 XML 文件:

<property>
    <value>Some text</value>
</property>
Run Code Online (Sandbox Code Playgroud)

<property>
    <value>
        <item id="first_id"/>
        <item id="second_id"/>
        <item id="third_id"/>
    </value>
</property>
Run Code Online (Sandbox Code Playgroud)

我怎样才能用Java做到这一点?

我创建了一个类:

@Root(strict = false)
public class PropertyValue {
    @ElementList(inline = true, required = false)
    private List<ItemData> items;

    @Text(required = false)
    private String text;
}
Run Code Online (Sandbox Code Playgroud)

ItemDataitem阶级。

但这是行不通的。该代码给了我一个例外:

org.simpleframework.xml.core.TextException: Text annotation @org.simpleframework.xml.Text(data=false, empty=, required=false) on field 'text' private java.lang.String PropertyValue.text used with elements in class PropertyValue
Run Code Online (Sandbox Code Playgroud)

java xml parsing xml-parsing simple-framework

3
推荐指数
1
解决办法
2591
查看次数

The requested package exists but these are rejected by your constraint

I want to add this tag from the branch 1.x to my project.

I specified: "monolog/monolog": "dev-1.x#1.23.0"

And ran composer update monolog/monolog

Composer says:

Problem 1
    - The requested package monolog/monolog dev-1.x#1.23.0 exists as monolog/monolog[1.0.0, 1.0.0-RC1, 1.0.1, 1.0.2, 1.1.0, 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.13.1, 1.14.0, 1.15.0, 1.16.0, 1.17.0, 1.17.1, 1.17.2, 1.18.0, 1.18.1, 1.18.2, 1.19.0, 1.2.0, 1.2.1, 1.20.0, 1.21.0, 1.22.0, 1.22.1, 1.23.0, 1.3.0, 1.3.1, 1.4.0, 1.4.1, 1.5.0, 1.6.0, 1.7.0, 1.8.0, 1.9.0, 1.9.1, 1.x-dev, dev-master, 2.x-dev] but these are rejected by your …
Run Code Online (Sandbox Code Playgroud)

php composer-php

3
推荐指数
1
解决办法
5304
查看次数

PHP 8 中的“TypeError: implode(): Argument #2 ($array) 必须是 ?array 类型,给定字符串”

<div class="form-group col-md-8" id="my" style="display: none;">
    <label>Choose Vpn Server</label>
    <div class="row">
        <?php
            $sqlUrl4 = "SELECT * FROM vpn_networks";
            $result4 = myQuery($sqlUrl4);

            while ($row4 = myFetchArray($result4)) {
        ?>
        <div class="col-sm-4 text-center">
            <label>
                <input type="checkbox" name="vpn_network[]" value="<?php echo $row4['id'];?>" id="iptv" />
                <?php echo $row4['title'];?>
            </label>
        </div>
        <?php
                    }
                ?>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)
$vpn1 =implode(',', $_POST['vpn_network']?? '');
Run Code Online (Sandbox Code Playgroud)

错误:

Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must
be of type ?array, string given in
C:\xampp\htdocs\ideology\partnerprocess.php:22 Stack trace: #0
C:\xampp\htdocs\ideology\partnerprocess.php(22): implode(',', '') #1
{main} thrown …
Run Code Online (Sandbox Code Playgroud)

php php-8

3
推荐指数
2
解决办法
5万
查看次数

将 Laravel 存储权限设置为 777?

由于某种原因,我不得不将 Laravel 存储文件夹设置为 777。

我运行此命令sudo chmod -R 775 storage/,但我的权限错误未解决,因此我通过运行此命令将权限从 775 更改为 777sudo chmod -R 777 storage/

我的问题是 777 权限可能会导致我的 laravel 出现任何问题(禁止访问 || 安全),还是可以?

php chmod laravel laravel-8

3
推荐指数
2
解决办法
2万
查看次数

参考 - 升级 PHP 后 Composer 错误“您的 PHP 版本不满足要求”

将 PHP 从 7.4 更新到 8.0 后,我composer update在现有项目上运行,出现如下错误:

  • acme/some-package[1.0.0, ..., 1.4.0] 需要 php ^5.6.4 || ^7.0 -> 您的 php 版本 (8.0.3) 不满足该要求。

这是什么意思,我该如何解决?

(这是一个参考答案,旨在涵盖一个经常遇到的问题。场景只是一个例子。另见:“如何解释 Composer 的错误日志? ”)

php composer-php php-8

3
推荐指数
3
解决办法
677
查看次数

php implode 没有按预期工作

我制作了一些 SimpleXMLObject 并将其转换为数组并内爆它们,但结果不是内爆字符串,而是单独的数组的第一个元素。

更有趣的是,它在我的本地服务器(版本为 5.4.4)中按预期工作,但故障发生在我的 php 版本为 5.3.13 的实时服务器中,这就是我的内爆的样子

$im_data = implode( '#', (array)$sync->datas->data);
Run Code Online (Sandbox Code Playgroud)

目标数组如下:

[datas] => SimpleXMLElement Object
    (
        [data] => Array
            (
                [0] => AAzdfAA
                [1] => BBdBB
                [2] => BBDD
                [3] => CCCCzsdfC
            )

    )
Run Code Online (Sandbox Code Playgroud)

但结果不是 AAzdfAA#BBdBB#BBDD#CCCCzsdfC,而是我的实时服务器中的 AAzdfAA。在我的本地服务器中,它按预期工作:AAzdfAA#BBdBB#BBDD#CCCCzsdfC

php simplexml implode

2
推荐指数
1
解决办法
1105
查看次数

在 HTML 中混合 RTL 和 LTR 文本

.red {
  color: red;
  direction: rtl;
}

.green {
  color: green;
  direction: rtl;
}

p {
  direction: ltr;
}
Run Code Online (Sandbox Code Playgroud)
<p>Example: 
1. <span class="red">????????? ????????</span> 
2. <span class="green">???????? ?? ???? ?????</span> 
</p>
Run Code Online (Sandbox Code Playgroud)

上面的 HTML 和 CSS 呈现如下:

电流输出样本

请注意,在 HTML 中,从左到右的顺序中,“红色”在“绿色”之前,而渲染已将它们交换。

如果我替换“2”。对于任何拉丁字母,跨度会交换到正确的位置。

如何让两个跨度(以及 的所有直接子项<p>)以从左到右的顺序出现?

首选仅使用 CSS 的解决方案。

html css bidi arabic

2
推荐指数
1
解决办法
828
查看次数