小编Jef*_*ado的帖子

用于使用XLINQ解析XHTML文件的库

当我意识到我需要为大约50个XHTML页面创建索引时,可能会在将来添加/删除/重命名/移动,我认为"没问题 - 我将使用LINQ to XML编写快速索引生成器,因为XHTML绝对算作XML".

当然,一旦我尝试运行它,我就发现了XLINQ在XHTML实体上窒息的事实,例如 .我使用以下算法解决了这个问题:

  1. 将XHTML文件读入字符串.
  2. 使用正则表达式搜索并替换该字符串,将一个部分添加到定义所有相关实体的DOCTYPE中(因为我只关心我读取的文件中的"title"属性,而我的输出文件现在不使用任何实体,它只是将它们全部设置为空白,但我可以稍后添加实际值).
  3. 将结果解析为XDocument.

为了保存文件,我做了相反的事情:

  1. 将XDocument保存到字符串.
  2. 删除实体定义.
  3. 保存到文件.

我的问题是,是否有任何库(特别是内置的.Net)我可以使用它将XHTML文件读入XDocuments?我编写的代码已经完成了它的目的(生成当前索引并测试生成器程序的其余部分),如果其他人已经编写并测试了相同的东西,我真的不想花时间测试它.

非常感谢你们的时间,
Ria.

编辑:非常感谢你; 这个有效!当我保存XHTML时,我仍然需要进行一些小的字符串处理(猜测库并不是真的为此而做:)并且我不得不稍微调整Agility Pack的来源以使其停止不加选择地粘贴CDATA部分围绕每个样式属性的内部(即使已经存在一个),但这是开源的重点,对吧?

.net xml linq xhtml linq-to-xml

6
推荐指数
1
解决办法
939
查看次数

是否真的值得从CodeIgniter更改为Zend Framework?如果是这样,它会有多难?

我不知道这是否适合这样的问题.如果没有,抱歉搞乱:/

我已经使用Codeigniter一段时间了,我已经建立了自己的cms(用于我的所有项目)和许多模块(新闻,图片上传等),我可以很好地做我的工作......但我一直想要Zend Framework.我之所以选择Codeigniter是因为时间问题.当我决定为我的余生使用一个框架时,我的项目时间非常紧张.而且由于学习时间很短,我选择了CodeIgniter.我现在真的很高兴.但我无法理解Zend!

我的问题是,为Zend提供认真的学习时间真的值得吗?我已经非常忙于项目,我将不得不牺牲我的休息时间,晚上睡觉少学习等等.我将需要用Zend从零开始构建我的cms和所有其他模块.

是不是真的值得吗?你怎么看待Zend对于一个已经认识Codeigniter的人来说有多难?

非常感谢!

timeline zend-framework codeigniter

6
推荐指数
1
解决办法
4725
查看次数

添加到指针时出现意外结果

有人告诉我这段代码打印出29.为什么会这样?

int *a = 17; 
printf("%d", a+3);
Run Code Online (Sandbox Code Playgroud)

c undefined-behavior

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

以百分比形式显示浮点数而不更改数字的值

是否可以指定string.Format()参数来添加百分比符号而不更改数字的值?

示例:
我们有数字44.36,我们希望在网格中显示并输出到Excel "44.36%".将值除以100然后应用"P"格式不是一种选择.在这种情况下无法更改值,我们只需要通过更改DisplayFormat值来完成.使用string.Format("{0}%", valueParam)也不是一种选择.

.net c# string-formatting

6
推荐指数
1
解决办法
5857
查看次数

jq 子字符串给出“jq:错误:无法用对象索引字符串”

问题

我正在尝试过滤json JQ结果以仅显示原始字符串的子字符串。例如,如果 JQ 过滤器抓取了该值

4ffceab674ea8bb5ec421c612536696839bbaccecf64e851dfc270d795ee55d1
Run Code Online (Sandbox Code Playgroud)

我希望它只返回前 10 个字符4ffceab674


我尝试过的

JQ 官方网站上,您可以找到一个可以满足我需要的示例:

Command:    jq '.[2:4]'

Input:      "abcdefghi"
Output:     "cd"
Run Code Online (Sandbox Code Playgroud)

我尝试在 unix 终端中使用一个简单的示例来测试这一点:

# this works fine, => "abcdefghi"
echo '"abcdefghi"' | jq '.'

# this doesn't work => jq: error: Cannot index string with object
echo '"abcdefghi"' | jq '.[2:4]'
Run Code Online (Sandbox Code Playgroud)

parsing substring jq

6
推荐指数
1
解决办法
5371
查看次数

密钥中有空格时的语法

这让我疯了.

我有一个看起来像这样的JSON:

{
"gateways": [
    {
        "DHCP": "On",
        "External IPs": "46.244.46.66",
        "Firewall": "On",
        "NAT": "Off",
        "Name": "gateway",
        "Routed Networks": "photon, default-routed-network",
        "Selected": "*",
        "Syslog": "",
        "Uplinks": "d5p6v51-ext",
        "VPN": "Off"
    }
]
}
Run Code Online (Sandbox Code Playgroud)

我可以轻松地提取大多数键的值.

例如

jq --raw-output .gateways[0].Name
gateway
Run Code Online (Sandbox Code Playgroud)

然而,我真正需要得到的是"External IPs"价值,我无法弄清楚如何管理空间.

我试过了

jq --raw-output .gateways[0].'External IPs'

jq --raw-output .gateways[0].`External IPs`

jq --raw-output .gateways[0]."External IPs"
Run Code Online (Sandbox Code Playgroud)

但这些都不起作用.

任何提示?

jq

6
推荐指数
1
解决办法
6300
查看次数

通过jq为每个JSON项运行bash命令

我想通过利用jq为JSON格式的数据片段中的每个字段运行bash命令.

{
    "apps": {
        "firefox": "1.0.0",
        "ie": "1.0.1",
        "chrome": "2.0.0"
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上我想要这样的东西:

foreach app:
   echo "$key $val"
done
Run Code Online (Sandbox Code Playgroud)

bash parsing json jq

6
推荐指数
2
解决办法
5478
查看次数

使用jq有条件地修改对象属性

我有以下JSON示例:

[
    {
        "name": "val1",
        "expire": { "$value": 10 }
    },
    {
        "name": "val2",
        "expire": 20
    },
    {
        "name": "val3"
    }
]
Run Code Online (Sandbox Code Playgroud)

我想用jq将其转换为这种形式:

[
    {
        "name": "val1",
        "expire": 10
    },
    {
        "name": "val2",
        "expire": 20
    },
    {
        "name": "val3",
        "expire": null
    }
]
Run Code Online (Sandbox Code Playgroud)

我发现的所有内容都是if-then-else,但似乎我不知道如何构建正确的表达方式。

基于类型检查的条件,看起来像是正确的方法,但是只返回“编译”时错误,我不知道如何解决:

.[] | { name, expire: (if .expire then (if type(.expire) == "number" then .expire else .expire."$value" end) else null end) }
Run Code Online (Sandbox Code Playgroud)

基于"$value"检查的条件,以某种方式过滤掉第二个对象:

.[] | { name, expire: (if .expire then (if .expire."$value"? then …
Run Code Online (Sandbox Code Playgroud)

shell command-line json jq

6
推荐指数
1
解决办法
1332
查看次数

用于cref时的"T:"是什么?

T:部分在使用cref属性时意味着什么?

<see cref="T:System.Windows.Form.Control"/>
Run Code Online (Sandbox Code Playgroud)

<see cref="System.Windows.Form.Control"/>
Run Code Online (Sandbox Code Playgroud)

c# xml-comments

6
推荐指数
1
解决办法
570
查看次数

如何获取可用的 ios 模拟器列表?

我想按以下格式列出可用的 ios 模拟器(iOS 版本应取自 JSON 密钥)

{
  "name": "iPhone 5s (11.4)",
  "udid": "FB6B3F7F-E6CD-4F64-8EC4-6C07C86A25C8"
}
{
  "name": "iPhone 6 Plus (11.4)",
  "udid": "768AE0B3-F77A-4DF4-8198-74CB2D598D19"
}
...
{
  "name": "iPad Air (11.4)",
  "udid": "396C0E3A-7DFD-41BD-9E05-28A27E6BB4AB"
}
{
  "name": "iPad Air 2 (11.4)",
  "udid": "1AD4AC1A-B45B-4869-9778-B5572D4CE031"
}
...
{
  "name": "iPhone 8 (13.2)",
  "udid": "71E02A7B-BCBB-45D8-8638-E5381B420406"
}
{
  "name": "iPhone 8 Plus (13.2)",
  "udid": "D3333C55-2D0A-4999-B6D2-450C637C9248"
}
...
{
  "name": "iPad (7th generation) (13.2)",
  "udid": "0543121E-86DC-4BC9-933F-60AA31D219CD"
}
{
  "name": "iPad Pro (11-inch) (13.2)",
  "udid": "1979F272-E938-45AA-9717-A5228AF6EBF1"
}
...
Run Code Online (Sandbox Code Playgroud)

我试过这样的事情 …

ios ios-simulator xcrun jq simctl

6
推荐指数
1
解决办法
5547
查看次数